我有一个使用序列化字段的类,但发现我的一些文本在输入普通文本后会出现奇怪的字符。这与编码有关吗?我该如何解决?
我将 Heroku 与他们的 postgresql 数据库一起使用。在 SQLite 中执行此操作时,它就像一个魅力。
SQLite:
Ik zeg wat ik voel.
Doe ik ...
Postgres:
Ik zeg wat ik voel.â¨â¨ Doe ik ...
谢谢!
我有一个使用序列化字段的类,但发现我的一些文本在输入普通文本后会出现奇怪的字符。这与编码有关吗?我该如何解决?
我将 Heroku 与他们的 postgresql 数据库一起使用。在 SQLite 中执行此操作时,它就像一个魅力。
SQLite:
Ik zeg wat ik voel.
Doe ik ...
Postgres:
Ik zeg wat ik voel.â¨â¨ Doe ik ...
谢谢!
首先检查你的 postgresql 和你的系统编码它的 UTF-8(最安全),另外,检查config/database.yml你是否为 postgres 连接设置了编码 UTF-8。
如果这不能解决问题,则将 yaml 引擎更改为 syck,在您的文件config/boot.rb 上写入
require 'yaml'
YAML::ENGINE.yamler = 'syck'
那应该可以解决奇怪的字符。
在 postgres 中,您正在解释 ISO-8859-1 中的 UTF-8 字节。鉴于在您的帖子中,有 2x U+2028 行分隔符,其 UTF-80xE2 0x80 0xA8
表示为邮政。â¨
0x80
因此,无论您查看结果是什么,问题都是为 UTF-8 获取正确的字节,但将它们解释为 ISO-8859-1。