Shp*_*ord 1 ruby postgresql encoding ruby-on-rails heroku
当某些字符串保存到数据库时,我收到以下ActiveRecord错误.
ActiveRecord::StatementInvalid: PG::Error: ERROR: invalid byte sequence for encoding "UTF8": 0xfc
Run Code Online (Sandbox Code Playgroud)
我认为这个字符串正在发生Mühldorf.
我已经尝试添加# encoding: utf-8到我的ruby文件的顶部来解决这个问题,但似乎没有做任何事情.
我正在使用Ruby Geocoder提取位置数据,这就是字符串的来源.
我在Heroku上的Postgres数据库上运行Ruby 1.9.3.
mu *_*ort 12
小写U-umlaut在ISO 8859-1(AKA Latin-1)中是0xfc,但0xfc不是有效的UTF-8字符.问题是你有一个Latin-1字符串,你试图将其视为UTF-8,而PostgreSQL正在抱怨.
修复数据源以向您发送UTF-8,或者,如果它始终向您发送Latin-1,请使用以下内容自行修复编码:
utf_8_string = latin_1_string.force_encoding('iso8859-1').encode('utf-8')
Run Code Online (Sandbox Code Playgroud)
然后使用该utf_8_string版本.
| 归档时间: |
|
| 查看次数: |
7663 次 |
| 最近记录: |