我正在升级 Rails 4.1 应用程序以使用 Ruby 2.2。在升级期间,事实证明该应用程序使用了旧版本的 pg gem (0.12),并且 gem 没有使用 Ruby 2.2 安装。所以我尝试使用更新版本的 pg gem (0.17.1)。现在在系统中创建新用户时有时会出现以下错误:
PG::CharacterNotInRepertoire: ERROR: invalid byte sequence for encoding "UTF8"
Ruby 2.2 和 Postgres 是否存在任何已知问题?
看起来应用程序配置为使用 unicode:config.encoding = "utf-8"
在 application.rb 中设置,encoding: unicode
在 database.yml 中
SQL语句:
INSERT INTO "users" (
"confirmation_sent_at",
"confirmation_token",
"created_at",
"email",
"encrypted_password",
"first_name",
"last_name",
"updated_at")
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)
RETURNING "id"
最佳答案
看起来这是“pg”gem 的一个已知问题:https://bitbucket.org/ged/ruby-pg/issue/197/ruby-220-byte-encoding-issue
它应该在 0.18 预发布版中修复
关于ruby-on-rails - Ruby 2.2:PG::CharacterNotInRepertoire:错误:编码 "UTF8"的无效字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683318/