如何使 jscon_encode 处理多字节字符?
echo '<a title=' .json_encode("按时间先后进行排序") . '>test</a>';
上面将生成类似“\u6309\u65f6\u95f4\u5148\u540e\u8fdb\u884c\u6392\u5e8f”的内容,而且一团糟!
echo '<a title=' .json_encode("按时间先后进行排序") . '>test</a>';
The above will generate something like "\u6309\u65f6\u95f4\u5148\u540e\u8fdb\u884c\u6392\u5e8f" and it's a mess!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不,那是 JSON。 JSON 编码器可以按原样复制字符(双引号、反斜杠或控制字符除外)或使用
\uxxxx
表示法对其进行编码。因此,尽管上面的内容并不美观,但它是有效的 JSON,并且可以确保字符串被正确解码。No, that’s JSON. JSON encoders are free to copy characters as-is (except for doublequote, backslash, or control characters) or to encode them using the
\uxxxx
notation. So even while the above is not beautiful, it’s valid JSON and will ensure that the string will be decoded correctly.title
属性值不被视为 JavaScript。仅使用json_encode
将 PHP 类型转换为 JavaScript/JSON 表达式。请尝试以下操作:
但是您需要使用与标题文本相同的编码来发送文档。
The
title
attribute value is not treated as JavaScript. Usejson_encode
only for converting a PHP type into a JavaScript/JSON expression.Try this instead:
But you would need to send your document with the the same encoding as your title text.
你试过这个吗:
http://us.php.net/manual/en/ function.json-encode.php#74878
have you tried this:
http://us.php.net/manual/en/function.json-encode.php#74878
当您使用 json_encode 来编码数据时,请这样做:
这样您就可以关闭不需要的字符串转换
When you are using
json_encode
, to encode your data, do it this way:This way you turn off string conversion that you do not want