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"]"
嘿,那是我写的评论@似乎是这样:)