在通过别人接口请求信息的时候,偶尔会遇到由于部分字符,如以下情况,则通过json_decode是会返回null的

但是这种情况通常不是由于整体编码的问题,因为在解析的时候就是以utf-8的编码解析的

这种情况通常会是中英文并存,但是部分空白字符无法识别。

通过对系统逻辑的观察,应该是由于前段保存字符的时候出现了非utf-8能够识别的字符,这种情况在json_encode中并不受影响,所以直接导致了接口获取数据的时候出现非法字符

解决方案:

$return_data=mb_convert_encoding($return_data, "UTF-8","UTF-8");

对通过curl请求回来的字符在进行一次强制编码,这种情况下原本的utf-8编码的文字不会受到影响,同时utf-8无法识别的字符将会被强制解析,解析出来之后的字符就会变成英文符号的? ,

这样就能够顺利的json_decode 了

来源:http://www.cnblogs.com/Bobdong/p/7727469.html

php json_decode无法解析特殊问好字符的更多相关文章

  1. PHP json_decode 无法解析特殊问号字符

    在通过别人接口请求信息的时候,偶尔会遇到由于部分字符,如以下情况,则通过json_decode是会返回null的 但是这种情况通常不是由于整体编码的问题,因为在解析的时候就是以utf-8的编码解析的 ...

  2. PHP json_decode 函数解析 json 结果为 NULL 的解决方法

    在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数 ...

  3. 使用json_decode无法解析json

    在接入合作方接口时,遇到一个json无法解析出来代码如下: <?php $res='{"resultcode":007,"resMsg":"!& ...

  4. json_decode返回NULL

    最近在调用某公司的API时,将对方返回的数据,使用PHP的json_decode函数解析,但是返回NULL,最终排查为对方传送来的json格式有误 打印$_REQUEST,数据结构大致如下: arra ...

  5. DuiLib 源码分析之解析xml类CMarkup & CMarkupNode cpp文件

    时隔5个月才有时间接着写未完成的实现部分,也是惭愧呀 选几个关机的函数来解析,一些get方法就忽略掉吧 CMarkupNode 与 CMarkUp 互为友元类,CMarkUp 实现解析,CMarkup ...

  6. IOS的XML文件解析,利用了NSData和NSFileHandle

    如果需要了解关于文档对象模型和XML的介绍,参看 http://www.cnblogs.com/xinchrome/p/4890723.html 读取XML 上代码: NSFileHandle *fi ...

  7. init进程解析rc文件的相关函数分析

    init进程的源码文件位于system/core/init,其中解析rc文件语法的代码放在五个函数中, init_parse_config_file (init_parser.c), read_fil ...

  8. Expat Parser解析xml文件

    Expat 解析器是基于事件的解析器. 基于事件的解析器集中在 XML 文档的内容,而不是它们的结构.正因为如此,基于事件的解析器能够比基于树的解析器更快地访问数据. 请看下面的 XML 片段: &l ...

  9. PHP XML Expat 解析器

    PHP XML Expat 解析器 内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能. XML 是什么? XML 用于描述数据,其焦点是数据是什么.XML 文件描述了数据的结构. ...

随机推荐

  1. win8共享文件设置 详细教程

    1.开放防火墙445端口 2.进入组策略,依次进入 从网络访问计算机 属性里--添加-Guest 3.进入 然后把里面的用户清空 4.打开网络和共享中心,关闭密码保护共享

  2. Ubuntu 16.04 64位安装arm-linux-gcc交叉编译器以及samba服务器

    交叉编译器是嵌入式开发的必要工具,但是由于目前大多数人使用64位ubuntu,在照着很多教程做的时候,就会失败,失败原因是64位ubuntu需要额外安装32位的兼容包.以arm-linux-gcc-3 ...

  3. 3. sklearn的K-Means的使用

    1. K-Means原理解析 2. K-Means的优化 3. sklearn的K-Means的使用 4. K-Means和K-Means++实现 1. 前言 在机器学习中有几个重要的python学习 ...

  4. [转]PowerDesigner中name和code取消自动关联

    PowerDesigner中,但修改了某个字段的name,其code也跟着修改,这个问题很讨厌,因为一般来说,name是中文的,code是字段名. 解决方法如下: 1.选择Tools->Gene ...

  5. [转]oracle存储过程中update不成功的一个原因

    原文地址:http://lin49940.iteye.com/blog/466626 今天一个同事写oracle 的存储过程遇到了一个问题, 他在里面update 操作不能完成更新的操作, 但是又不会 ...

  6. mariadb是替代MySQL的好方式

    像Oracle这样成熟稳定的数据库,足以支撑海量数据的存储与查询了?为什么还需要数据切片呢?的确,Oracle的DB确实很成熟很稳定,但是高昂的使用费用和高端的硬件支撑不是每一个公司能支付的起的.试想 ...

  7. C语言 · 日期计算

    算法提高 日期计算   时间限制:1.0s   内存限制:256.0MB      问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰 ...

  8. 在 Android studio 中 配置Gradle 做到 “根据命令行提示符生成指定versionCode, versionName,指定apk的打包输出路径”

    需求: 1. 使用 Android studio ,使用 gradle 进行构建 2. 在实际开发中,我们需要使用jenkins进行打包.就需要配置我们的 gradle 脚本以支持参数化的方式. 3. ...

  9. android开发(26) 和其他应用交换数据方式一,使用intent指定自定义action调用其他程序里的activity,并获得其返回的结果

    我们在开发中会遇到和其他应用的交互情形,下面是一个简单的方式.整个的使用类似“使用intent调用系统自带的拍照应用并获得结果”. 先看页面:     我们看看实现步骤. 第一个应用 DEMO1: 1 ...

  10. PCL中分割_欧式分割(1)

    基于欧式距离的分割和基于区域生长的分割本质上都是用区分邻里关系远近来完成的.由于点云数据提供了更高维度的数据,故有很多信息可以提取获得.欧几里得算法使用邻居之间距离作为判定标准,而区域生长算法则利用了 ...