php json 中文null怎么处理啊
这段代码输出中文不正常,麻烦帮我改一下,解决中文不正常的问题,谢谢!('localhost','root','123');mysql_select_db('db');my...
这段代码输出中文不正常,麻烦帮我改一下,解决中文不正常的问题,谢谢!
('localhost','root','123');
mysql_select_db('db');
mysql_query('set names utf8',$conn);
$res = mysql_query('select * from tb',$conn);
$arr = array();
while($data = mysql_fetch_assoc($res)) {
$arr[] = $data;
}
echo json_encode($arr); 展开
('localhost','root','123');
mysql_select_db('db');
mysql_query('set names utf8',$conn);
$res = mysql_query('select * from tb',$conn);
$arr = array();
while($data = mysql_fetch_assoc($res)) {
$arr[] = $data;
}
echo json_encode($arr); 展开
4个回答
展开全部
Json 只支持 utf-8 编码
<?php
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @return boolean $apply_to_keys_also 是否也应用到key上
* @access public
*
*************************************************************/
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);
?>
<?php
/**************************************************************
*
* 使用特定function对数组中所有元素做处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数
* @return boolean $apply_to_keys_also 是否也应用到key上
* @access public
*
*************************************************************/
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);
?>
更多追问追答
追问
这个代码转换过来的是GBK的啊,能不能转换成UTF-8,谢谢
追答
额、、先讲数据转换
$array = iconv('gb2312','utf-8','这里是中文标题'),
在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode()转换成json字符串,最后再用urldecode()将编码过的中文转回来。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
json_decode($arr,true);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$res=$res->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($res);
为啥打印出来的中文是NULL啊 ,同事的都没问题啊!
echo json_encode($res);
为啥打印出来的中文是NULL啊 ,同事的都没问题啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
null 是空的。。。。。。。。?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询