调用api接口的时候出现乱码了

andypan312 2015-10-31 11:09:25
<?
$sql="select classname from table";
$sql=$empire->query($sql);
while($r=$empire->fetch($sql)){
$itemsSearchRel = array();
$itemsSearchRel[classname]=$r[classname];
$itemsSearchRel=json_encode(encodeConvert($itemsSearchRel,'gb2312','utf-8'));
echo $itemsSearchRel;
}

function encodeConvert($str,$fromCode,$toCode){
if(strtoupper($toCode) == strtoupper($fromCode)) return $str;

if(is_string($str)){
if(function_exists('mb_convert_encoding')){
return mb_convert_encoding($str,$toCode,$fromCode);
}
else{
return iconv($fromCode,$toCode,$str);
}
}
elseif(is_array($str)){
foreach($str as $k=>$v){
$str[$k] = encodeConvert($v,$fromCode,$toCode);
}
return $str;
}
return $str;

}
?>
以上是服务器上的接口,前端显示就是一般的ajax调用,一般情况都没有问题~但是遇到特殊中文的时候就是乱码,如“滆”、"咾"、"秿"等,不知道有没有人遇到过同样问题的~望指教!
...全文
561 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
andypan312 2015-10-31
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
1、gb2312 是 gbk 的子集,只声明 gb2312 的话可能会无法处理非常用字 2、为接口提供 ajax 数据时,应从数据库获取符合要求的 utf-8 数据,而不是自己编程转换 只需在查询前通知数据库所需的字符集就可以了
谢谢版主指导,我来试试看~~
xuzuning 2015-10-31
  • 打赏
  • 举报
回复
1、gb2312 是 gbk 的子集,只声明 gb2312 的话可能会无法处理非常用字 2、为接口提供 ajax 数据时,应从数据库获取符合要求的 utf-8 数据,而不是自己编程转换 只需在查询前通知数据库所需的字符集就可以了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧