phpjsonencode乱码
① php在将数组转成json的时候,key值是中文的,乱码怎么解决!
乱宴大源码的话是因为文件的格式不正确,而网页编码是默认为文件编码格式的,JSON又是UTF-8编码,所以你的文件可能是GB2312格式仿辩,所以导致JSON内的中文乱码。
这种情况转换晌态为UTF-8格式就可以了。
(注意,转换成无BOM格式的,记事本转换的UTF-8是带BOM的,会导致JSON无法正确解析)
② php json 输出中文乱码的问题怎么处理啊,谢谢
header("Content-Type:text/html;charset=UTF-8");
$arr=array('1','2','三');
echo$arr['2']."<br/>";
print_r($arr);
echo"<br/>";
print_r(json_encode($arr));
echo"<br/>";
print_r(json_decode(json_encode($arr)));
输出json数据会有但是翻译成数组后就行了
③ PHP JSON_ENCODE使用后中文变成百分号乱码了
看到这幅握哪图会了判行吗?呵呵段冲码也是utf-8编码
④ PHP从Mysql查出来的数据转换成json格式中文乱码怎么解决
解决办法是在使用json_encode之前把字符用函数urlencode()处理一下,然后再json_encode,输出结果的时候在用函数urldecode()转回来。具体如下:
//urlencode处理
functionjson_array($obj){
foreach($objas$key=>$value){
if(is_array($obj[$key])){
$obj[$key]=json_array($obj[$key]);
}else{
$obj[$key]=urlencode($value);
}
}
return$obj;
}
//urldecode解密转换为中文字符
function_json($obj){
returnurldecode(json_encode(json_array($obj)));
}
echo_json($json);//$json为你要输出的json数组
此处递归调用是为了处理多维数组······
⑤ php生成json数据为乱码的几种处理方法
乱码指的是计算机系统不能显示正确的字符,而显示其他无意义的字符或空白,如一堆ASCII Code。所显示出来的文字统称为乱码。乱码是因为所使用的字符的源码在本地计算机上使用了错误的显示字库,或在本地计算机的字库中找不到相应于源码所指代的字符所致哪孙旅。
通俗点讲:
乱码就是你打开王页或邮箱,里面的字不是全中文的,而是一些乱七八糟莫名其妙的无意义的字符组合在一起。主要是计算机的字库出错所致。
1一般出现在网页,用网页上面的查看——编码——简体中文即可解决。
2 出现乱码一般是Windows系统字库的问题,可能是系统错误或不正常关机造成的,也可能是某些软件需要使用操作系统以外的字库造成的。解决办法得看具体的问题,一般情况下的Windows乱码可以通过以下三种方法解决。
第一种方法是下载 解决Windows XP SP2乱码补丁 V1.00 (华军软件园)
第二种是解决Windows系统错误造成的乱码问题,重启后用F8键激活系统菜单,进入安全模式。等系统检查完毕,硬盘没有响应后再重新正常退出并重新启动计算机,正常进入Windows,字体一般就能自动恢复。这是因为Windows在进入安全模式时会重新索引字库及整理菜单。
第三种解决方法用于修正软件造成的注册表中关于字体部分设置出错的问题。运行“Regedit”启动注册表编辑器。在“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\fontassoc”键下有 “Associated CharSet”和“Associated DefaultFonts” 两个键。当出现汉字乱码时,这两个键中的内容就可能不正确甚至不完李凳整。它们的正确内容应该是“Associated CharSet”内有“(默认)、ANSI(00)、GB2312(86)、OEM(FF)、SYMBOL(02)”几项串值,键值分别为“(未设置键值)、Yes、Yes、Yes、No”,而“Associated DefaultFonts”内有“(默认)、AssocSystemFont、FontPackegeDecorative、FontPackegeDontCare、FontPackegeModern、FontPackegeRoman、FontPackegeScript、FontPackegeSwiss”几项串值,键值分别为“(未设置键值)、simsun.ttf、宋体、宋体、宋体、宋体、宋体、宋体”。重新启动系统后汉字就应该显示正确了。建议您在修改前先备份注册表,以防修改错误使系统出现问题凯余。
⑥ php json_encode在转码时部分中文转换失败。
代码是没有问题的,建议你看看自己的代码文件的编码格式是否是UTF-8的格式
如何彻底排查,重新创建文件,不要创建文本文件然后修改后缀,建议你用编辑器创建,并且设置好你的编码格态返者式,然后再打字,不要复制,复帆薯制之前的代码,有可能还会存世明在问题。
我的推测:你的PHP文件这个代码源文件存在编码问题,建议重新新建一个,手打,勿复制。
建议使用好一点的IDE编辑器写代码,容易规避这些小问题
⑦ PHP中,从服务器端接收到的json字符串前端有乱码如何解决
<?phpclass Json{ public static function encode($str){ $code = json_encode($str); return preg_replace("#\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\1'))", $code); } public static function decode($str){ return json_decode($str); }}?>用租举上面的代码可以解决在森雀存储JSON生成的字串为乱码的问题友情提示:参数为UTF-8编码过的字串或在用UTF-8保存的程序中直接引用上面的两个静态方法附:php pack()函数说明pack压缩资料到位字符串之中。语法: string pack(string format, mixed [args]...);返回值: 字符串(二进制)函数种类: 资料处理内容说明本函数用来将资料此型早压缩打包到位的字符串之中。本函数和 Perl 的同名函数功能用法完全相同。参数 format 为压缩的格式,见下表a 将字符串空白以 NULL 字符填满A 将字符串空白以 SPACE 字符 (空格) 填满h 十六进位字符串,低位在前H 十六进位字符串,高位在前c 有号字符C 无号字符s 有号短整数 (十六位,依计算机的位顺序)S 无号短整数 (十六位,依计算机的位顺序)n 无号短整数 (十六位, 高位在后的顺序)v 无号短整数 (十六位, 低位在后的顺序)i 有号整数 (依计算机的顺序及范围)I 无号整数 (依计算机的顺序及范围)l 有号长整数 (卅二位,依计算机的位顺序)L 无号长整数 (卅二位,依计算机的位顺序)N 无号短整数 (卅二位, 高位在后的顺序)V 无号短整数 (卅二位, 低位在后的顺序)f 单精确浮点数 (依计算机的范围)d 倍精确浮点数 (依计算机的范围)x 空位X 倒回一位@ 填入 NULL 字符到绝对位置使用范例<?>
⑧ PHP JSON乱码问题
把数据库编码,网页编码,网页显示编码,都改成一致的试试!
⑨ php创建json数组,到html输出为null或乱码的问题。
1、输出为null 是因为没有接受到值吧
2、输出为乱码是因为你php文件的编码不对
⑩ php json decode 中文乱码
呵呵,如果你查看一下手册就知道了,json_encode()这个函数只能编码utf-8的字符,就是说你给他传入的参数只能是utf-8格式。所以捏,你在encode之前,需要将你的汉字编码转化为utf-8的格式,然后再encode,这样就不会有问题了。