2011-04-22 40 views
1

我正在開發一家小商店的Rails應用程序。它需要加載一個.xls文件,解析它並加載到數據庫。 我使用Spreadsheet gem來處理文件。 問題是該文件包含顯示爲「└└ÛEx Ex H H-1727F(ÙÙÒGP T304)」Spreadsheet - 閱讀西里爾文字符的編碼問題

顯示的俄文字符引用說,我需要指定編碼,但我不知道在這個文件中使用哪一個。我試過「贏得1251」,但它給了我無法找到一個「UTF-8贏得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

+0

嘗試'WINDOWS-1251'或只是'1251' – 2011-04-22 15:34:50

+0

沒有工作。不過謝謝。 – bassneck 2011-04-22 15:56:10

+0

上傳您的.xls文件,我會盡力做些事 – 2011-04-22 16:01:46

回答

0

我還挺通過先保存在的.xlsx文件,然後將其保存以.xls(97-2003)解決了這家1.5個月。我無法使用.xlsx,因爲有一些奇怪的OLE signature incorrect錯誤。