【发布时间】:2011-04-30 09:34:45
【问题描述】:
我有一种情况,经过几年的使用,我们突然有了一些 JSON 编码的值,由于反斜杠,这些值使我们的 Perl 脚本适合。
问题在于 í 和 é 等重音字符。一个例子是 Matí 编码为 Mat\ud873。
目前尚不清楚环境中可能发生了什么变化。涉及 PHP、Perl 和 MySQL。表排序规则是 latin1_swedish_ci,这可能已被同事搞砸了。
这会给任何人敲响警钟吗?
【问题讨论】:
-
为什么只存储部分代理?
-
嗨,Ignacio,不确定我是否关注?系统从表单中获取整个帖子,并使用 Pear 模块对整个 $_POST 进行编码,就像
$json->encode($_POST);一样,并存储到 mySQL 以供 Perl 稍后处理。 -
你能告诉我们它在所有不同阶段是如何输入、编码和存储的吗?
-
U+D873 是代理对的一半。 UTF-16 中使用代理对来描述 BMP 之外的字符。
-
谢谢!这可以理解 Perl 中的错误:在代理对中缺少低代理字符,在字符偏移 161 处(在 "nd \\u9000","name_la..." 之前)
标签: php mysql perl json collation