我正在为一家小商店开发一个rails应用程序。它需要加载.xls文件,解析它并加载到数据库。 我使用Spreadsheet gem来处理文件。 问题是该文件包含俄语字符,显示为“└ÛÛ.ExTH-1727F(ÓÝÓÙ¯ÒGPT304)”
参考文献说,我需要指定编码,但我不知道在这个文件中使用了哪一个。我试过“win-1251”,但它给了我一个关于无法找到“utf-8 to win-1251转换器”的错误
我将编码设置为“WINDOWS-1251”,但它给了我这个错误:
U+00BE to WINDOWS-1251 in conversion from CP850 to UTF-8 to WINDOWS-1251
然后我尝试了CP850,它没有抛出错误,但字符仍然不可读。
真的没有太多代码。
# -*- encoding : utf-8 -*-
...
def show
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open 'c:\rails\renergy23\public\price-16-04-11.xls'
@sheet = book.worksheet 0
end
为了简单起见,我现在不把它加载到数据库中。相反,我在我的视图中输出它:
- 30.times do |i|
= @sheet.row i+10
%br
答案 0 :(得分:0)
我有点在1.5个月后解决了这个问题,首先将文档保存在.xlsx中,然后将其保存在.xls(97-2003)中。由于一些奇怪的OLE signature incorrect
错误,我无法使用.xlsx。