本文目录一览:
- 1、PHP中json_encode中文乱码问题
- 2、关于php后台获取前台post过来的json数据中文乱码的问题~
- 3、我用php输出json 中文显示乱码,请大侠帮忙解决一下
- 4、php生成json数据为乱码的几种处理方法
- 5、PHP中,从服务器端接收到的json字符串前端有乱码如何解决
PHP中json_encode中文乱码问题
php 中使用 json_encode() 内置函数(php 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它。这个函数的功能是将数值转换成json数据存储格式
$arr = array ('a'=1,'b'=2,'c'=3,'d'=4,'e'=5);
echo json_encode($arr);
//结果
//{"a":1,"b":2,"c":3,"d":4,"e":5}
/*
下面看一款json_encode中文乱码问题
解决方法是用urlencode()函数处理以下,在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来
*/
function arrayrecursive($array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key = $value) {
if (is_array($value)) {
arrayrecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
}
/**************************************************************
*
* 将数组转换为json字符串(兼容中文)
* @param array $array 要转换的数组
* @return string 转换得到的json字符串
* @access public
*
*************************************************************/
function json($array) {
arrayrecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}
$array = array
(
'name'='希亚',
'age'=20
);
echo json($array);
//应用实例
$servname="localhost";
$sqlservname="root";
$sqlservpws="123456";
$sqlname="lock1";
$db=mysql教程_connect($servname,$sqlservname,$sqlservpws) or die("数据库教程连接失败");
mysql_select_db($sqlname,$db);
$sql = "select * from t_operater";
$result =mysql_query($sql);
$rows = mysql_num_rows($result);
while($obj = mysql_fetch_object($result))
{
$arr[] = $obj;
}
echo '({"total":"'.$rows.'","results":'.json_encode($arr).'})';
关于php后台获取前台post过来的json数据中文乱码的问题~
header不设置都可以,但是feedback.php文件编码格式要改成utf8的,注意:是文件的编码格式
我用php输出json 中文显示乱码,请大侠帮忙解决一下
用json_decode()方法可以把这些代码还原为php格式,然后输出就可以看到中文了
如下:
$js_str = 你所谓的乱码;
$arr = json_deconde ($js_str);
print_r($arr);
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字符串前端有乱码如何解决
?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 字符到绝对位置使用范例?