Электронная таблица - проблема кодирования с чтением символов кириллицы - PullRequest
1 голос
/ 22 апреля 2011

Я работаю над приложением rails для небольшого магазина.Нужно загрузить файл .xls, разобрать его и, возможно, загрузить в базу данных.Я использую Gem Spreadsheet для работы с файлом.Проблема в том, что файл содержит русские символы, которые отображаются как «Ex.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

1 Ответ

0 голосов
/ 11 июня 2011

Я решил это через 1,5 месяца, сначала сохранив документ в формате .xlsx, а затем сохранив его в формате .xls (97-2003). Я не смог использовать .xlsx из-за какой-то странной ошибки OLE signature incorrect.

...