json_encode 和波斯语单词?

发布于 2024-12-05 05:35:58 字数 559 浏览 1 评论 0 原文

我正在使用 json_encode 插入值数组(例如:... 在数据库中,不知道为什么它将波斯语单词插入为 ["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"] 它之前被插入为:

¡来自塔布拉...) json_encode 如下:[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]"

在我的表(数据库)中,该行的排序规则是< code>utf8_general_ci

该怎么办 print("output of database") 波斯语单词为什么?

I am using json_encode for inserting a value array (like: <input name="ok[]">... in the database, don't know why it inserted Persian words as ["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"] it was earlier inserted as: سید سعید داداشزاده.

Output of database (select * from tabla ...) by json_encode is as:[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]"

In the my table (of database), Collation of this row is utf8_general_ci?

What do I do for print("output of database") Persian words as سید سعید داداشزاده ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(4

梦罢 2024-12-12 05:35:58

json_encode 使用 \uXXXX 对所有非 ascii 字符进行编码符号。这不是问题,因为任何 json 解码器和 javascript 都可以识别此表示法:

json_decode('["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]');
// array('سید سعید داداشزاده')

但是,您从数据库获取的字符串似乎已被转义。在插入数据库之前它已经被双重转义,或者您启用了 magic_quotes_runtime。在使用 stripslashes php.net/json_decode" rel="nofollow">json_decode,取消转义:

json_decode(stripslashes('[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]'));

json_encode encodes all non-ascii characters with the \uXXXX notation. This is not a problem, because any json decoder, and javascript, recognize this notation:

json_decode('["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]');
// array('سید سعید داداشزاده')

However, it seems that the string that you get from the database is escaped. Either it has been double-escaped before inserting in the database, or you have magic_quotes_runtime enabled. Use stripslashes on the json string, before using json_decode, to un-escape it:

json_decode(stripslashes('[\"\\u0633\\u06cc\\u062f \\u0633\\u0639\\u06cc\\u062f \\u062f\\u0627\\u062f\\u0627\\u0634\\u0632\\u0627\\u062f\\u0647\"]'));
从﹋此江山别 2024-12-12 05:35:58

只要使用这个

json_encode($array,JSON_UNESCAPED_UNICODE)

就可以了!

just use this

json_encode($array,JSON_UNESCAPED_UNICODE)

work fine !!

岁月打碎记忆 2024-12-12 05:35:58

json_encode 正在转义每个字符。对字符串使用 stripslashes() 来删除每个字符的多余斜杠。

json_encode is escaping each character. Use stripslashes() to the string to remove the extra slash for each character.

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