Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php json_编码UTF-8_Php_Unicode_Json - Fatal编程技术网

php json_编码UTF-8

php json_编码UTF-8,php,unicode,json,Php,Unicode,Json,json_encode()的php maual说: 第一个输入参数值的所有字符串数据必须是UTF-8编码的 这是否真的意味着字符串数据不能包含任何0x00字节(在unicode中可能会出现) 我知道如果输入参数是用utf-8编码的有效字符串就可以了。但是如果输入字符串是一个有效的GBK编码字符串呢?伙计们,你们知道GBK和我的意思吗 这意味着数据必须是有效的UTF-8。utf8encode函数将ISO-8859-1转换为UTF-8,因此,如果您已经有了UTF-8,则无需对其进行双重编码 我认为这

json_encode()
的php maual说: 第一个输入参数值的所有字符串数据必须是UTF-8编码的

这是否真的意味着字符串数据不能包含任何
0x00字节
(在unicode中可能会出现)


我知道如果输入参数是用utf-8编码的有效字符串就可以了。但是如果输入字符串是一个有效的GBK编码字符串呢?伙计们,你们知道GBK和我的意思吗

这意味着数据必须是有效的UTF-8。utf8encode函数将ISO-8859-1转换为UTF-8,因此,如果您已经有了UTF-8,则无需对其进行双重编码

我认为这是正确的:

utf8_encode仅将ISO-8859-1中编码的字符串转换为UTF-8。A. 更合适的名称是“iso88591到utf8”。如果你的文本 未在ISO-8859-1中编码,您不需要此函数。如果你的 文本已在UTF-8中,您不需要此函数。事实上 将此功能应用于ISO-8859-1中未编码的文本将 很可能只是把那篇文章弄乱了


所以你的问题的答案是不,这并不意味着。反之亦然如果它是有效的UTF-8,那么就可以了。

否,这意味着该字符串必须是有效的UTF-8
0x00
是Unicode字符U+0000,在UTF-8中编码为
0x00

php > var_dump(json_encode(["\x00"]));
string(10) "["\u0000"]"

嘿,那是我写的评论@似乎是这样:)