PHP 相当于 javascript JSON.stringify()
PHP equivalent of javascript JSON.stringify()
我注意到 PHP 的 json_encode($array) 在变音符号上搞砸了。
如果我更新我的数据库列 type text 和 javascript-created JSON 通过 HTTP 传递,一切看起来都很好。但是当我将 JSON 创建为 PHP 时,一些字符会被奇怪地编码。
我有这个数组;
$array = ['M-am întîlnit ieri cu','fosta mea profă de matematică'];
$text = implode(",",$array); // this looks good in db
$json = json_encode($array); // this don't and returns error when try to decode later.
首先,值得指出的是 PHP 并没有“搞砸”任何事情。它是转义字符,看起来可能很奇怪,但它是完全有效的,当你稍后 json_decode
它会和原来一样。看这里:https://3v4l.org/Smj2F
如果你不喜欢转义,你可以使用 JSON_UNESCAPED_UNICODE
标志:
https://www.php.net/function.json-encode
此标志将根据 https://www.php.net/manual/en/json.constants.php.
“逐字编码多字节 Unicode 字符”
所以你可以这样做:
json_encode($array, JSON_UNESCAPED_UNICODE);
它会给你以下输出:
["M-am întîlnit ieri cu","fosta mea profă de matematică"]
我注意到 PHP 的 json_encode($array) 在变音符号上搞砸了。 如果我更新我的数据库列 type text 和 javascript-created JSON 通过 HTTP 传递,一切看起来都很好。但是当我将 JSON 创建为 PHP 时,一些字符会被奇怪地编码。
我有这个数组;
$array = ['M-am întîlnit ieri cu','fosta mea profă de matematică'];
$text = implode(",",$array); // this looks good in db
$json = json_encode($array); // this don't and returns error when try to decode later.
首先,值得指出的是 PHP 并没有“搞砸”任何事情。它是转义字符,看起来可能很奇怪,但它是完全有效的,当你稍后 json_decode
它会和原来一样。看这里:https://3v4l.org/Smj2F
如果你不喜欢转义,你可以使用 JSON_UNESCAPED_UNICODE
标志:
https://www.php.net/function.json-encode
此标志将根据 https://www.php.net/manual/en/json.constants.php.
“逐字编码多字节 Unicode 字符”所以你可以这样做:
json_encode($array, JSON_UNESCAPED_UNICODE);
它会给你以下输出:
["M-am întîlnit ieri cu","fosta mea profă de matematică"]