0
我遇到了编码问题:红宝石/ SQLITE3编码问题
db = SQLite3::Database.new "encoding.db"
=> #<SQLite3::Database:0x9b69cbc>
db.encoding
=> #<Encoding:UTF-16LE>
r1 = db.execute("select * from db_log_sink limit 2").first.last
=> "\u7953\u7473\u6D65\u5420\u6D69\u7A65\u6E6F\u3A65\u4520\u5453\u2F20\u4520\u5444\x0A"
r2 = db.execute("select * from db_log_sink limit 2").last.last
=> "????????\u0A3A"
r1.encoding
=> #<Encoding:UTF-16LE>
r2.encoding
=> #<Encoding:UTF-8>
在使用相同的文件在Linux命令行工作,我得到:
select * from db_log_sink limit 2;
1|2011-11-16T12:02:15|0|System Timezone: EST/EDT
2|2011-11-16T12:02:15|0|Server Hostnames:
在浏览器R2出来为中国传统韩。 r1通常以格式化文本出现。
当使用宝石/红宝石时,文本列中大约一半的记录出现乱码。在Linux命令行和在Windows下使用SQLiteSpy一切看起来都很正常。
到目前为止,我已经尝试过~20个sqlite数据库,它们都显示相同的行为。
如果需要,我可以提供db文件的下载链接。
任何帮助将不胜感激。