json_encode 和波斯语单词?
我正在使用 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")
波斯语单词为什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
json_encode
使用\uXXXX
对所有非 ascii 字符进行编码符号。这不是问题,因为任何 json 解码器和 javascript 都可以识别此表示法:但是,您从数据库获取的字符串似乎已被转义。在插入数据库之前它已经被双重转义,或者您启用了 magic_quotes_runtime。在使用
stripslashes
php.net/json_decode" rel="nofollow">json_decode
,取消转义: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: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 usingjson_decode
, to un-escape it:只要使用这个
就可以了!
just use this
work fine !!
json_encode 正在转义每个字符。对字符串使用 stripslashes() 来删除每个字符的多余斜杠。
json_encode is escaping each character. Use stripslashes() to the string to remove the extra slash for each character.
你可以使用这个要点:
https://gist.github.com/MahdiMajidzadeh/88407f4c33a294cae29ed1493332d7c0
:)))))
you can use this gist:
https://gist.github.com/MahdiMajidzadeh/88407f4c33a294cae29ed1493332d7c0
:)))))