2013-05-06 70 views
1
<?php 
header("Content-type: text/csv; charset=GB2312"); 
$arr = array('丂','亐'); 
echo json_encode($arr); 
?> 

取而代之的是提供汉字数组,json_encode返回空值。PHP json_encode不能用中文字符集

+2

您检查出任何关于此页面右侧的链接? – 2013-05-06 11:45:14

+0

是的,我没有找到我的答案 – 2013-05-06 11:46:38

+0

对我来说你的例子工作正常。所以我想你在这里混合编码。确保使用默认的utf-8编码输入字符。其他一切都会导致问题。 – arkascha 2013-05-06 11:47:38

回答

3

json_encode只能使用UTF-8编码的字符串。如果您需要从中文编码字符串中成功创建有效的json,则需要先将其重新编码/转换为UTF-8。然后json_encode将按照文档工作。

使用iconv转换编码,也可以使用mb_convert_encoding

$str = iconv("GB2312", "UTF-8", $str); 
+0

如果我将它转换为utf-8,那么我将失去中文字符 – 2013-05-06 11:48:44

+0

你能用一个例子来解释你的答案吗? – 2013-05-06 11:49:04

+0

@Wasim请参阅编辑转换的编辑答案。 – 2013-05-06 11:51:09