我正在升级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中设置并且编码: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预发布中修复