PHP json_encode中文乱码问题的解决办法
下面的PHP代码可以解决以下问题:
1.json_encode UTF8码中文后的字符串不可阅读
2.json_encode 多级数组中文乱码问题
3.json_encode 数组中包含换行时错误问题
4.json_encode 数组中键为中文的问题
代码如下:
function _encode($arr)
{
$na = array();
foreach ( $arr as $k => $value ) {
$na[_urlencode($k)] = _urlencode ($value);
}
return addcslashes(urldecode(json_encode($na)),"\\r\\n");
}
function _urlencode($elem)
{
if(is_array($elem)){
foreach($elem as $k=>$v){
$na[_urlencode($k)] = _urlencode($v);
}
return $na;
}
return urlencode($elem);
}
相关推荐
-
PHP读取mssql json数据中文乱码的解决办法
PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. 解决办法如下: 这样,sql server 2008中的中文就可以在网页正常显示了. 如果要将中文正常插入到sql server 2008中,还要加入一条代码:$query = iconv("utf-8", "gbk//ignore", $query);//为了解决中文
-
探讨PHP JSON中文乱码的解决方法详解
我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中 文乱码的情况,解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似,下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法. 为什么PHP与JSON交互时会出现中文乱码? 由于JSON与JS一样,对于客户端的字符是以UTF8的形式处理,即JSON提交或接受返回的字符是以UTF8形式处理,当与PHP交互时,如果数据库
-
php查询mssql出现乱码的解决方法
本文实例讲述了php查询mssql出现乱码的解决方法.分享给大家供大家参考.具体分析如下: 在php连接mssql时查询出来的全部是乱码,这种问题我根据经验知道是编码问题,下面来给各位总结一下解决方法. 方法一,修改php.ini文件,当然根据你页面情况来设置也可以是utf-8编码了,代码如下: 复制代码 代码如下: ;mssql.charset = "ISO-8859-1" mssql.charset = "GBK" 方法二,直接程序中转换,代码如下: 复制代码
-
thinkphp3查询mssql数据库乱码解决方法分享
thinkphp查询mssql数据库出现乱码的原因是ThinkPHP默认为UTF-8,而msmsql数据库是简体中文版,存储的是GB2312编码 解决方法: 1:在ThinkPHP\Lib\Core 打开Db.class.php,在其最后面加上2:在Db.class.php找到function select(),在$result = $this->query($sql);后面加一条 $result=iconv2utf8($result),就OK了 复制代码 代码如下: public functi
-
php adodb连接mssql解决乱码问题
周海汉/文ADO可以用 new COM("ADODB.Connection", NULL, CP_UTF8)//65001 这样的语句来实现正确转换.但ADO对php的支持缺乏文档.而有个开源的adodb,文档较为丰富. 其中对不同数据库驱动,设置UTF-8的方法还不一样,如下: 复制代码 代码如下: For all drivers 'persist', 'persistent', 'debug', 'fetchmode', 'new' Interbase/Firebird 'dial
-
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
本文讲述了php中json_encode处理gbk与gb2312中文乱码问题的解决方法,具体方法如下: 1.json_encode()中文在gbk/gb2312中对中文返回为null $arr = array ( array ( 'catid' => '4', 'catname' => 'www.jb51.net', 'meta_title' => '我们' ) ); echo json_encode($arr); 运行结果: [{"catid":"4&qu
-
PHP json_encode() 函数详解及中文乱码问题
在 php 中使用 json_encode() 内置函数(php > 5.2)可以使用得 php 中数据可以与其它语言很好的传递并且使用它. 这个函数的功能是将数值转换成json数据存储格式. <?php $arr = array ( 'Name'=>'希亚', 'Age'=> ); $jsonencode = json_encode($arr); echo $jsonencode; ?> 程序运行结果如下: {"Name":null,"Age&
-
php中json_encode UTF-8中文乱码的更好解决方法
最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了.以下是自己的解决json_encode的办法.有更好的方法请分享出来吧! 第一种: 这种简单的做一个代码转换,urlcode之后再返回所需数组 我代码这样就足够了. 代码如下 复制代码 public static function encodeOperations ($array) { foreac
-
PHP json_encode中文乱码问题的解决办法
下面的PHP代码可以解决以下问题:1.json_encode UTF8码中文后的字符串不可阅读2.json_encode 多级数组中文乱码问题3.json_encode 数组中包含换行时错误问题4.json_encode 数组中键为中文的问题 复制代码 代码如下: function _encode($arr){ $na = array(); foreach ( $arr as $k => $value ) { $na[_urlencode($k)] = _urlencode ($v
-
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
在原页面一张图片上添加了一个链接,链接中有中文,于是出现下面的情况: 解决办法是在tomcat的server.xml文件的中加入URIEncoding="utf-8",如下: <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443&q
-
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了 解决方法就是进行解码 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco
-
Android Retrofit 中文乱码问题的解决办法
Android Retrofit 中文乱码问题的解决办法 使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理: 解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@FormUrlEncoded 如下: @FormUrlEncoded @POST("/test/test") Call<Response> register(@Field("name") String name)
-
Ajax传输中文乱码问题的解决办法
AJAX简介 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下. ajax传输中文乱码问题描述: 我是在一个jsp页面有一个保存按钮,点击时会触发saveForm()的js函数,在saveForm()函数里经过校验后,会通过ajax发送数据请求,这样就不用通过提交表单来传输数据了,aj
-
ajax中文乱码的各种解决办法总结
由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码.而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码. 有一种解决办法就是使用encodeURIComponent加上修改 Content-Type 为 application/x-www-form-urlencoded" 来把数据统一编码成 url 格式,当然,也可以指定编码,如:"application/x-www-form-urlencode
-
python中Pycharm 输出中文或打印中文乱码现象的解决办法
1. 确保文件开头加上以下代码: # -*- coding:utf-8 -*- 还可以加上 import sys reload(sys) sys.setdefaultencoding('utf-8') 确保以下. 如果还是没有解决中文乱码,那么进行方法2. 2. 进入setting 单击打开,单击 修改完成后,结果如下 单击"ok". 成功. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.
-
EBS xml publisher中文乱码问题及解决办法
由于本机环境问题,导致做的xml publisher报表跑不出来,无法显示 XML 页. 使用 XSL 样式表无法查看 XML 输入.请更正错误然后单击 刷新按钮,或以后重试. XML 文档只能有一个顶层元素.处理资源 'http://***.***.com:8001/OA_CGI/FNDWRR.exe?temp_id=2326230111' 时出错.第 12 行,位置: 2 <ITEM_LIST> -^ 但是在同事的电脑上可以跑出来. 后面设置了$OA_JRE_TOP/jre/lib/fon
-
jsp和servlet操作mysql中文乱码问题的解决办法
首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明: 1.如果乱码是从jsp页面出现的,jsp头部页面加上:<%@ page language="java" pageEncoding="UTF-8" %>在head标签中加上标签. 2.如果乱码是在servlet中出现的,则有两种方法:一种是在每个servlet中doget和doPost方法头部加上request.setCharacterEnco
随机推荐
- js浏览器本地存储store.js介绍及应用
- java sqlserver text 类型字段读取方法
- JS高仿抛物线加入购物车特效实现代码
- JS实现在线统计一个页面内鼠标点击次数的方法
- php之CodeIgniter学习笔记
- VC++开发中完美解决头文件相互包含问题的方法解析
- C#实现无限级联下拉列表框
- C语言菜鸟基础教程之a++与++a
- 详解MySQL中的SQRT函数的使用方法
- python写入xml文件的方法
- 深入理解bootstrap框架之第二章整体架构
- javascript实现网站顶部出现几秒后图片缓慢消失的效果
- 轻松掌握JavaScript装饰者模式
- 微信小程序使用navigateTo数据传递的实例
- 使用java基于pushlet和bootstrap实现的简单聊天室
- 详解C++ 多态的实现及原理
- MySQL下载和安装 win10 64位 MySQL8.0的教程图解
- PHP实现登录验证码校验功能
- 微信小程序登录状态java后台解密
- 详解centos7+django+python3+mysql+阿里云部署项目全流程