【问题标题】:Spreadsheet - encoding problem with reading cyrillic characters电子表格 - 读取西里尔字符的编码问题
【发布时间】:2011-04-22 14:53:10
【问题描述】:

我正在为一家小商店开发 Rails 应用程序。它需要加载一个 .xls 文件,对其进行解析并可能加载到数据库中。 我使用电子表格 gem 来处理该文件。 问题是该文件包含显示为“└ÛÛ.ExT H-1727F (ÓÝÓÙ¯Ò GP T304)”的俄语字符

参考资料说,我需要指定编码,但我不知道这个文件中使用的是哪一种。我尝试了“win-1251”,但它给了我一个错误,提示我无法找到“utf-8 到 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

http://dl.dropbox.com/u/4976861/price-16-04-11.xls

【问题讨论】:

  • 试试WINDOWS-1251 或只是1251
  • 没用。不过还是谢谢。
  • 上传你的 .xls 文件,我会尝试做一些事情
  • 您可以尝试在计算机编码下en.wikipedia.org/wiki/Cyrillic_alphabet 列出的编码 --> 其他
  • 我已经添加了一些代码并上传了文件

标签: ruby-on-rails ruby encoding spreadsheet xls


【解决方案1】:

我在 1.5 个月后解决了这个问题,首先将文档保存为 .xlsx,然后将其保存为 .xls (97-2003)。由于一些奇怪的OLE signature incorrect 错误,我无法使用 .xlsx。

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2015-07-28
    • 2015-05-19
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多