Ruby on rails Rails 2.3.4上的编码错误

Ruby on rails Rails 2.3.4上的编码错误,ruby-on-rails,encoding,Ruby On Rails,Encoding,我们的设置包括以下内容: Ruby 1.9.1 轨道2.3.4 博士后9 Linux 当尝试将一些UTF-8数据从DB输出为CSV时,Rails抛出以下错误: ArgumentError (invalid byte sequence in US-ASCII): haml (2.2.5) lib/sass/plugin/rails.rb:19:in `process' <internal:prelude>:8:in `synchronize' /usr/local/rv

我们的设置包括以下内容:

  • Ruby 1.9.1
  • 轨道2.3.4
  • 博士后9
  • Linux
当尝试将一些UTF-8数据从DB输出为CSV时,Rails抛出以下错误:

ArgumentError (invalid byte sequence in US-ASCII):
  haml (2.2.5) lib/sass/plugin/rails.rb:19:in `process'
  <internal:prelude>:8:in `synchronize'
  /usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
  /usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
  /usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
ArgumentError(US-ASCII中的字节序列无效):
haml(2.2.5)lib/sass/plugin/rails.rb:19:in'process'
:8:在“同步”中
/usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/httpserver.rb:111:在“服务”中
/usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/httpserver.rb:70:in'run'
/usr/local/rvm/rubies/ruby-1.9.1-p431/lib/ruby/1.9.1/webrick/server.rb:183:in'block in start_thread'
使用
script/server
通过Webrick运行时,以及通过Passenger运行时,都会发生相同的错误

有趣的是,在我本地机器上几乎相同的设置上,使用相同的数据库和相同的请求(因此结果集中的数据相同),它不会崩溃


有什么想法吗?

转向Ruby 1.9.2和Rails 2.3.14确实解决了这个问题。感谢弗雷德里克

如果您的本地机器几乎相同,那么可能是因为不同?Ruby1.9.1也是beta版。第一个广泛使用的Ruby1.9实际上是1.9.2。我还建议切换到更新版本的rails 2.3——早期版本是在ruby 1.9.2I忘记添加之前发布的,之前该应用程序在另一台服务器上也使用(几乎)相同的设置,使用相同的ruby 1.9.1。在迁移到另一台服务器时,我们仔细地尝试保持相同的ruby和gem版本。我在本地机器上有1.92,但我怀疑它是造成错误的。如果它在2台机器上工作不到1.9-1,它在1.92的机器上工作,我会认为Ruby版本非常相关(除非工作和非工作机器之间有其他相关的变化),特别是当编码内容是稳定在1.9.1和1.9.2之间的主要区域之一时,恐怕我不清楚。它在一台1.9.1机器上工作,移动到另一台1.9.1机器上,在那里它不工作。