我在使用本地PHP 5实现的
这个函数的预期行为是什么?我该怎么做才能强制将这些字符转换为它们的基本等价物?我已经检查过数据库返回数据和管理页面插入数据之间的字符编码不匹配,并且所有设置都正确 - 看起来编码器只是因为这些字符而拒绝这些值。还有其他人遇到过这种情况吗?
编辑:
为了澄清一下;
MSWord会将标准引号和撇号转换为更美观的“花式”或“卷曲”的引号。当这些字符放置在内容管理器中时,如果编辑界面(在HTML中)和数据库编码不匹配,则可能会导致问题。
但这里不是问题所在。例如,我有一个表示个人资料的json_object和字符串:
Jim O’Shea
该撇号的UTF代码为
{"model_name":"Bio","logged":true,"BioID":"17","Name":null,"Body":"Profile stuff!","Image":"","Timestamp":"2011-09-23 11:15:24","CategoryID":"1"}
json_encode()
时遇到了一个有趣的问题。显然,在将对象序列化为JSON字符串时,编码器会将任何包含“花括号”引号的字符串属性设置为null,这些引号可能是启用自动转换的MS Word文档中复制粘贴的。这个函数的预期行为是什么?我该怎么做才能强制将这些字符转换为它们的基本等价物?我已经检查过数据库返回数据和管理页面插入数据之间的字符编码不匹配,并且所有设置都正确 - 看起来编码器只是因为这些字符而拒绝这些值。还有其他人遇到过这种情况吗?
编辑:
为了澄清一下;
MSWord会将标准引号和撇号转换为更美观的“花式”或“卷曲”的引号。当这些字符放置在内容管理器中时,如果编辑界面(在HTML中)和数据库编码不匹配,则可能会导致问题。
但这里不是问题所在。例如,我有一个表示个人资料的json_object和字符串:
Jim O’Shea
该撇号的UTF代码为
\u2019
从数据库获取并直接进行json编码时,它将为空值。{"model_name":"Bio","logged":true,"BioID":"17","Name":null,"Body":"Profile stuff!","Image":"","Timestamp":"2011-09-23 11:15:24","CategoryID":"1"}
json_decode()
函数对于字符串'{"{a}":"{b,c,d}"}'
的解析,结果符合预期。 - user554546