php - 数组到 JSON 编码带有希伯来字符的奇怪行为

标签 php mysql json encoding utf-8

事情是这样的,我试图将一个 JSON 字符串保存到我的数据库中,但是每个希伯来字母都在转换为“\u05d4”,例如,它应该是希伯来语 (Д) 中的字母“He”。

英文编码正确

我做了研究,发现这种编码是 JAVA 或 C/C++ 字符编码,但我找不到一种方法将它作为常规 UTF-8 字符存储在我的数据库中以方便编辑...

获取数据并将其显示在我的页面上效果很好(在希伯来语中,它应该如此)但无论我尝试使用什么函数来解决问题,我数据库中的数据都是经过编码的......

示例:

\u05d0\u05d9\u05e4\u05d4 \u05ea\u05e8\u05e6\u05d4 \u05e9\u05d4\u05e9\u05dd \u05d9\u05de\u05d5\u05e7\u05dd?

应该是:

איפה תרצה שהשם ימוקם?

如您所见,编码也占用了大量额外空间,并且无法从 phpMyAdmin 进行编辑...

我保存数据的函数:

mysql_real_escape_string(json_encode($pinfo))

而 $pinfo 包含数组中的所有数据(以 utf-8 编码)

是 JSON_ENCODE() 的问题还是我还不知道的其他问题?

编辑

根据 Álvaro González 和 Tanuel Mategi 提供的信息,我找到了我想要的解决方案: mysql_real_escape_string(json_encode($pinfo, JSON_UNESCAPED_UNICODE))

希望对您有所帮助!

最佳答案

\u05d4 是 JSON 中完全有效的转义序列。它对应于U+05d4 Unicode character (希伯来文字母 He)。您的 JSON 输出显然没有任何问题——我认为您只是误读了 format documentation .

关于php - 数组到 JSON 编码带有希伯来字符的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36128962/

相关文章:

php - Codeigniter消息: Undefined variable: query

php - MySQL 查询用数字排序

javascript - 动态改变背景颜色

MySQL通过table1 + table2更新table1然后将table2设置为0

mysql - 如果我的结果集由分组记录和汇总记录组成,那么我如何对这些记录进行汇总/平均?

html - 使用 select2.js 将动态数据放入下拉列表中

javascript - 未捕获的类型错误 : Object [object Object] has no method 'select2'

php - 如何唯一标识一台计算机?

javascript - 从 JSON 中获取特定对象

c# - 将 json 对象引用到字符串时出现 RuntimeBinderException