我正在使用集合utf8_general_ci
对于我的字段 lang_name ,它将存储任何语言的翻译数据。当我从数据库获取数据并将其编码为 json 时,输出如下 "lang_name":"\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940"
而其在数据库中的值为अंग्रेज़ी。
如何从数据库中获取以 json 格式存储的实际值?
最佳答案
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 编码字符。
自 json_encode()(PHP 5.4.0 之前)以来,您可能无法使用 inconv()
参数或 mb_convert_encoding()
的任何酷组合来做到这一点) 最终会将其映射到 \uxxxx
字符转换。同样,这对 JSON(传输)很有好处,但可能不便于人类阅读。
关于php - 如何将utf8_general_ci编码的数据显示为json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941203/