【发布时间】:2011-09-14 22:01:25
【问题描述】:
我有一个 Rails 3.0.9 应用程序在我的开发环境中本地运行,并在 heroku 应用程序上远程运行。我有a method that imports a CSV file into a model,这个文件可以包含非英文字符,如°、á、é、í等(它是西班牙语)。
我目前能够在我的本地开发 (SQLite) 数据库中导入完整文件(75k 条记录)而没有任何问题;但是,当使用 heroku db:push 将 db 上传到 heroku 时,它会失败并出现我在标题中发布的错误:
!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xba
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
显然,Heroku 在插入“°”字符时遇到了问题。 (目前该文件没有任何 á、é、í 等字符,但我怀疑这些也可能失败。)
我已经在我的application.rb文件中设置了默认编码,如下:
#.../application.rb
config.encoding = "utf-8"
我还能做些什么来设置“客户端编码”并解决这个问题?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 postgresql utf-8 heroku