/**
* 中文转换为JSON字符串
* @param $chinese_str 中文:可以包含中文字母数字
* @return string
*/
function json_encode($chinese_str)
{
$chinese_str = iconv('UTF-8', 'UCS-2', $chinese_str);
$len = strlen($chinese_str) - 1;
$str = '';
for ($i = 0; $i < $len; $i = $i + 2)
{
$c1 = $chinese_str[$i];
$c2 = $chinese_str[$i + 1];
$unicode1=ord($c1);
$unicode2=ord($c2);
if ($unicode1)
{ // 两个字节的文字
$unicode1='\u'.base_convert($unicode1, 10, 16);
$unicode2=base_convert($unicode2, 10, 16);
if(in_array($unicode2,array('a','b','c','d','e','f'))){
$unicode2='0'.$unicode2;
}
$str.=$unicode1.$unicode2;
}else{
$str.=$c2;
}
}
return $str;
} /**
* JSON字符串转换为中文
* @param $json_str JSON字符串
* @return string
*/
function json_decode($json_str)
{
// 转换编码,将JSON字符串转换成可以浏览的utf-8编码
$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
preg_match_all($pattern, $json_str, $matches);
$chinese_str = '';
if (!empty($matches))
{
$count=count($matches[0]);
for ($j = 0; $j < $count; $j++)
{
$str = $matches[0][$j];
if (strpos($str, '\\u') === 0)
{
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);
$c = chr($code).chr($code2);
$c = iconv('UCS-2', 'UTF-8', $c);
$chinese_str .= $c;
}
else
{
$chinese_str .= $str;
}
}
}
return $chinese_str;
}

  

最新文章

  1. MWeb 1.5 发布!增加打字机滚动模式、发布到 Evernote、印象笔记、Wordpress.com、Blogger、编辑器内代码块语法高亮
  2. C#设计模式(14)——模板方法模式(Template Method)
  3. Git+GitHub 使用小结
  4. MFC中OnDraw()和OnPaint()的区别[转]
  5. 2016 医疗项目 Bootstrap 自适应页面布局(1)
  6. maven依赖传递关系
  7. Could not initialize class org.apache.log4j.LogManager 报错
  8. 防御XSS攻击的七条原则
  9. 妹子图太多怎么看才好,Swing来支招
  10. virtualbox 复制多个虚拟机 (宿主机redhat)
  11. UVA11294-Wedding(2-SAT)
  12. Entity Framework DBContext 增删改查深度解析
  13. .Net WebApi 初探
  14. 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统
  15. JQ菜单滑块
  16. ES6 用Promise对象实现的 Ajax 操作
  17. 以太坊虚拟机(EVM)
  18. Spring JDBC SqlUpdate类示例
  19. jpa无外键配置
  20. request不能接受前端传来的参数的问题

热门文章

  1. 20145230 《Java程序设计》第8周学习总结
  2. 20145240 《Java程序设计》第四次实验报告
  3. VMware 连接不上XSHELL
  4. 一元多项式的乘法与加法运算 【STL-map哈希-map反向迭代器遍历 + 零多项式】
  5. PAT1024. Palindromic Number (25)
  6. script标签加载js代码的一些知识
  7. vue.js计算属性 vs methods
  8. 10.0.4_CentOS_120g_for_Qt5.3.2
  9. Spring boot临时文件目录报错
  10. Redis中redis.conf配置总结