如何使 jscon_encode 处理多字节字符?

发布于 2024-08-06 22:02:41 字数 176 浏览 8 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

南…巷孤猫 2024-08-13 22:02:42

不,那是 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.

口干舌燥 2024-08-13 22:02:42

title 属性值不被视为 JavaScript。仅使用 json_encode 将 PHP 类型转换为 JavaScript/JSON 表达式。

请尝试以下操作:

echo '<a title="按时间先后进行排序">test</a>';

但是您需要使用与标题文本相同的编码来发送文档。

The title attribute value is not treated as JavaScript. Use json_encode only for converting a PHP type into a JavaScript/JSON expression.

Try this instead:

echo '<a title="按时间先后进行排序">test</a>';

But you would need to send your document with the the same encoding as your title text.

嘿哥们儿 2024-08-13 22:02:42

当您使用 json_encode 来编码数据时,请这样做:

json_encode($data, JSON_UNESCAPED_UNICODE)

这样您就可以关闭不需要的字符串转换

When you are using json_encode, to encode your data, do it this way:

json_encode($data, JSON_UNESCAPED_UNICODE)

This way you turn off string conversion that you do not want

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文