0

我正在utf8_general_ci为我的字段lang_name使用集合,它将以任何语言存储翻译的数据。当我从数据库中获取数据并将其编码为 json 时,输出是这样的"lang_name":"\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940",而它在数据库中的值为अंग्रेज़ी

如何从数据库中获取以 json 格式存储的实际值?

4

1 回答 1

1

您的 JSON 字符串没有任何问题\uxxxx,因为它是 JSON 自己的特殊字符编码方式,例如 UTF-8。

当您使用正确的 JSON 解码方法时,字符串将再次正常。

从 PHP 5.4.0 开始,您可以在编码时将特殊字符实际输出到 JSON 字符串,因此浏览器可以在支持例如 UTF-8 时显示特殊字符。

利用:

$json = json_encode($my_utf8_meshup, JSON_UNESCAPED_UNICODE);

JSON_UNESCAPED_UNICODE 标志可确保将字符转换为其等效的 UTF8 编码字符。

您可能无法使用任何很酷的inconv()参数组合来做到这一点,或者mb_convert_encoding()因为您的 json_encode()(在 PHP 5.4.0 之前)最终会将其映射到\uxxxx字符转换。同样,这对 JSON(传输)有好处,但可能不是人类可读的。

于 2013-06-05T14:19:30.097 回答