2011-10-31 22 views
0

我需要生成.xls格式的報告,嘗試寫入數據時,我收到以下錯誤parse_fellow.rb的不兼容的字符編碼錯誤 - 當寫一個xls文件

~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:515:in `block in _write_sst': incompatible character encodings: ASCII-8BIT and US-ASCII (Encoding::CompatibilityError) 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:502:in `each' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:502:in `each_with_index' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:502:in `_write_sst' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:489:in `write_sst' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:439:in `write_from_scratch' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/excel/writer/workbook.rb:620:in `write_workbook' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/writer.rb:15:in `block in write' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/writer.rb:14:in `open' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/writer.rb:14:in `write' 
    from ~/.rvm/gems/[email protected]/gems/spreadsheet-0.6.4/lib/spreadsheet/workbook.rb:106:in `write' 
    from lib/parse_fellow.rb:449:in `generate_match_report_fellow' 
    from lib/parse_fellow.rb:547:in `<top (required)>' 
    from ~/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands/runner.rb:48:in `eval' 
    from ~/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands/runner.rb:48:in `<top (required)>' 
    from ~/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands.rb:39:in `require' 
    from ~/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands.rb:39:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

行號449是

workbook.write("#{RAILS_ROOT}/lib/#{file}") 

值傳遞給我的工作簿對象之前,我曾嘗試使用下面的方法他們進行編碼以ASCII和UTF-8,但沒有人幫我

"my text content".force_encoding("ASCII-8BIT") 

我的開發環境:

ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] 
Rails 3.0.7 
spreadsheet (0.6.4) 

我不知道這裏有什麼問題會如何調試這個問題。任何輸入都會對我非常有幫助。

+0

不知道你需要做什麼,但也許這個鏈接可以幫助。 http://ruby.runpaint.org/encoding 或者這一個 http://stackoverflow.com/questions/2095525/can-i-set-the-default-string-encoding-on-ruby-1- 9 – Rasmus

回答

1

但我真的不知道問題是什麼。不幸的是,我在這裏找不到類似情況的其他人。

我解決這個問題的方式是通過嘗試不同的可用版本的寶石,最後它與以下版本一起工作。

gem "spreadsheet", '0.6.5.9' 
相關問題