我在黑暗中尝试了许多随机拍摄,例如:
config.gateways[:default] = [:sql, database_url, encoding: 'UTF8']
以及 UTF8 的所有变体,例如 utf8、utf-8、unicode、Unicode。
- 我尝试将 shell env 的 LC_CTYPE 设置为 UTF8。
- 我尝试在连接 URL 上设置 client_encoding 参数。
- 我已经验证数据库具有 UTF8 编码,即
SHOW server_encoding
. - 我已经验证了 ROM 的 Sequel 连接在实际使用之前报告了 UTF8 的客户端编码,即
SHOW client_encoding
; - 我已经验证我可以使用 psql 在同一个数据库中插入和读回 UTF-8 字符。
- 我已经验证我可以使用 Rails 的 ActiveRecord 在同一个数据库中插入和读回 UTF-8 字符。
但是当我给 ROM 非 ASCII、UTF-8 字符插入时,这些字符在 PostgreSQL 的某个地方被替换为“�”。
设置 ROM 并将其与 UTF-8 字符一起使用的正确方法是什么?