unicode编码转汉字
2017-01-11 15:16
495 查看
问题:
使用json_encode方法,中文未做处理,转变成Unicode编码,中文字符显示串乱码
解决示例:
已存储为json格式字符串,正则替换
未存储时,处理
先将字符串urlencode,在json_encode,在urldecode
解决示例:
针对数组处理方式–借鉴~
使用json_encode方法,中文未做处理,转变成Unicode编码,中文字符显示串乱码
解决示例:
已存储为json格式字符串,正则替换
ini_set("max_execution_time", -1);//php脚本执行时间限制处理 $arr = array(42, 66, 69, 71); $strs = Adlog::where('type', 1)->select('id','msg_str')->get(); $sql = "update ad_log set msg_str = case id "; $ids = array(); foreach ($strs as $k => $v){ $ids[] =$v->id; if(in_array($v->id,$arr)){//中文字符串显示为类似u65b0u6d6au5faeu535a 情况 $v->msg_str = preg_replace("#u([0-9a-f]{4})#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))", $v->msg_str); $msg = preg_replace("#u([0-9a-f]{4})#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))", $v->msg_str); }else{//字符串正常显示情况\u65b0\u6d6a\u5fae\u535a $v->msg_str = preg_replace("#\\\u([0-9a-f]{4})#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))", $v->msg_str); $msg = preg_replace("#\\\u([0-9a-f]{4})#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))", $v->msg_str); } $sql .= 'when '.$v->id.' then \''.$msg.'\' '; } header('content-type:text/html;charset=utf-8'); //dd($strs->toArray());die; //sql语句输出 $sql .= 'end where id in ('.implode(',', $ids).')'; //echo $sql;die; $r = DB::update($sql); echo $r;die;
未存储时,处理
先将字符串urlencode,在json_encode,在urldecode
解决示例:
$aInfo = array( 'hospital' => urlencode(Hospitaluser::find($iHospitalid)->hospital), 'hospital_id' => $iHospitalid, ); $aInfo = urldecode(json_encode($aInfo));//中文Unicode转义处理
针对数组处理方式–借鉴~
function encode_json($str) { return urldecode(json_encode(url_encode($str))); } function url_encode($str) { if(is_array($str)) { foreach($str as $key=>$value) { $str[urlencode($key)] = url_encode($value); } } else { $str = urlencode($str); } return $str; }
相关文章推荐
- 常用简体汉字unicode编码(3500个)
- 将汉字转化成Unicode编码
- java 中汉字的转化成Unicode编码 的方法 JDK自带的native2ascii工具
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- JavaScript汉字Unicode编码相互转换
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换(by daode1212)
- java unicode编码转汉字
- 汉字一、二级字库的汉字与unicode编码(十六进制)对照表,按照unicode的顺序排列
- java中以utf8和gbk编码的汉字对应的二进制,以及用unicode进行正则匹配
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)
- 如何把properties中的所有unicode编码转为汉字
- Android中 汉字使用Unicode编码格式表示
- Android- Unicode编码 和 汉字转换( java实现 , javascript实现)
- 汉字转Unicode编码,Unicode编码转汉字
- 汉字Unicode 编码大全
- Java中Unicode编码和汉字之间的转换
- C#,JavaScript 汉字转换为Unicode编码 Unicode编码转换为汉字
- c# GBK,Unicode,UTF-8编码与汉字的转换
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5
- Unicode 字符编码表|汉字Unicode编码的区间为:0x4E00→0x9FA5(转)