我有一个简单的 PHP 一维数组。
当我执行 var dump ( echo var_dump($a)) 时,我将其作为输出:
array(3) { [0]=> string(3) "?" [1]=> string(21) "exhausted||to exhaust" [2]=> string(4) "jin3" }
Run Code Online (Sandbox Code Playgroud)
但是,当我对它进行 json_encode ( echo json_encode($a)) 时,我得到了这个:
["\u5c3d","exhausted||to exhaust","jin3"]
Run Code Online (Sandbox Code Playgroud)
它返回的十六进制值是正确的,但我不知道如何阻止它给我十六进制。我只是想让它显示字符。
如果我echo mb_internal_encoding()返回 UTF-8,这就是我设置的。我在所有字符串操作中都非常小心地使用 mb_ 函数,因此没有任何数据被弄乱。
我知道我可以编写一个修改过的 json_encode 函数来解决这个问题。但我想知道这里发生了什么。