问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP中json_encode中文乱码问题

发布网友 发布时间:2022-04-19 19:41

我来回答

1个回答

热心网友 时间:2022-04-06 02:30

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).'})';
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Hive笔记 Hive-元数据 英语low是什么意思 Low low 的是什么意思? 如何打开电脑设置的打印机电脑打印设置在哪里打开 使用电脑打印机怎么设置打印机和电脑怎样连接该如何设置 win10打印机设置在哪里 win10打印机设置方法介绍 怎么在电脑上设置打印机在电脑上怎么找打印机设置 怎样为电脑设置打印机电脑里打印机设置在哪 电脑打印机在哪里设置电脑上的打印机在哪里 用php做网页的时候出现这种情况怎么办? 平面设计工具有哪些呢? 平面设计师的日常工作有哪些? 平面设计师工作都做些什么? 平面设计师工作内容包括哪些? 平面设计师应具备那些知识! 平面设计的工作都是什么啊? 平面设计师应该具备的基本技能有哪些? 一个平面设计初学者必备的6个设计技能 平面设计师都需要学习哪些软件? 平面设计师需要具备哪些技能? 当一个平面设计师需要具备哪些条件? 平面设计师需要具备哪些技能? 平面设计师需要具备哪些能力? 平面设计师基本功有哪些? 一个平面设计师要具备什么最基本的技能? mpp格式谁能帮我打开,急急急 mpp文件转换xls文件 .mpp可以转换为xls文件么 如何把mpp格式转换excel 急..出现乱码什么回事?? An exception occurred processing JSP page /logi... sql cannot be resolved,这个是怎么一回事?是连接... 帮我看看是怎么回事啊!! 未结束的字符串常量 承德特产送礼什么最好?上哪去买? 别人如何登陆我的云闪付 @189是什么邮箱? 189邮箱是什么? 189邮箱,是什么邮箱? 189邮箱是什么啊? 189邮箱是CN还是COM? 189是移动号段还是联通号段? 中国电信189邮箱是什么? 什么是189邮箱,移动手机可以注册189邮箱么? 公司要用189邮箱发邮件,是移动用户可以办理吗? 189.cn邮箱是什么类型帐户 189邮箱能提供哪些功能? 中国电信189邮箱有哪些基本功能? 189邮箱和电子邮箱是一样的吗?