【发布时间】:2020-10-19 17:55:36
【问题描述】:
我使用支付 API,它返回一些 XML。对于日志记录,我想将 API 响应保存在我的数据库中。
API 中的一个词是“manhã”,但 API 返回“manh�”。 á ou ç 等其他字符被正确返回,我猜这是 API 中的一些错误。
但是当我试图将它保存在我的数据库中时,我得到:
Postgres invalid byte sequence for encoding "UTF8": 0xc3 0x2f
我该如何解决这个问题?
我尝试过类似
response.encode("UTF-8") 和 force_encode 但我得到的只是:
Encoding::UndefinedConversionError ("\xC3" from ASCII-8BIT to UTF-8)
我需要删除这个错误的字符或以某种方式对其进行转换。
【问题讨论】:
-
您确定“支付 API”完全为您提供 UTF-8 编码吗?
-
@AmigoJack api 返回 ISO-8859-1 格式的 XML。我的 rails 表字段是一个正常的“字符变化”。我有其他返回 UTF-8 的 API,我需要将它们全部存储在同一列中。所以我需要以某种方式转换 API 响应,以便能够将其保存在数据库中。
-
XML 开头是这样的:""
-
应该很明显:
ISO-8859-1与UTF-8是不同的编码 - 您必须将一个转换为另一个,而不是通过未处理的方式传递它。
标签: ruby-on-rails postgresql utf-8