ruby-on-rails - Rails、PostgreSQL 和非标准字符的编码错误

标签 ruby-on-rails postgresql heroku character-encoding

我收到以下错误:

ActiveRecord::StatementInvalid: PG::Error: ERROR: invalid byte sequence for encoding "UTF8": 0xf66e6bf6 : INSERT INTO "response_sets" ("city") VALUES ('Jönköping') RETURNING "id"

数据库是 Heroku 应用程序上的 PostgreSQL 9.0.6。

当有奇怪的字符时,不确定如何解决该错误。

最佳答案

您的数据库未设置为与您尝试插入的字符串相同的编码方案。我想 Heroku 上的 Postgres 默认设置为使用 UTF-8,如果我不得不猜测的话,您的输入可能是拉丁语变体之一。您可以将数据库设置为接受您提供的编码方案,例如:

SET CLIENT_ENCODING 'ISO-8859-2'

或者您可以将输入转码为 UTF-8(这可能更好)

"my string".encode('UTF-8')

关于ruby-on-rails - Rails、PostgreSQL 和非标准字符的编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12728777/

相关文章:

php - 如何解析 Postgresql 查询的用户搜索字符串?

ruby-on-rails - Heroku 数据库在其应用程序被删除后是否存在 - 我可以将其转移到另一个应用程序吗?

ruby-on-rails - :highest_rated scope to order by average rating

ruby-on-rails - 自定义插值更改时强制回形针重命名文件

ruby-on-rails - Rails 应用程序使用 postgresql 显示 PG::Error

django - 如何调整 redis 设置以与 Heroku-redis 兼容?

html - 故障排除 clojure 网络应用程序 : connecting html and css for heroku deployment

jquery - rails/CSS : How do I make a gallery of images of different widths?

postgresql - 简单 UPDATE 查询中的语法错误

sql - Rails SQL "select in"跨多个列 : where (code1, code2) in ( ("A", 1), ("A", 3), ("Q", 9))