php返回json数据中文显示的问题

返回json格式的中文显示成\\u5723\\u8bde\\u8282\\u5343\\u4e07\\u597d\\u793c\\u5927\\u5949\\u9001

解决方法:

另外从网上搜索到的其他方法

这是从网上搜索得到的又一篇相关文章

当使用php自带的json_encode对数据进行编码时,中文都会变成unicode,导致不可读。如:对字符串”厦门“进行json_encode后,输出的是\”\\u53a6\\u95e8\”。

查询了一下,有两种方法:

1.将\”\\u53a6\\u95e8\”还原成“厦门”,使用如下的代码:

2.先将中文字段urlencode,json_encode后,再用urldecode,也可以显示中文。

PHP5.4版本,已经给Json新增了一个选项: JSON_UNESCAPED_UNICODE。加上这个选项后,就不会自动把中文编码了。

另,由于 json_encode 和 json_decode只支持utf-8编码的字符,GBK的字符要用json就得转换一下,附自己写的GBK转UTF-8的代码:

转自:https://www.cnblogs.com/xcxc/archive/2012/09/10/2678424.html

zend studio 乱码

zend studio 乱码

最近学习php 发现有的代码中文显示 乱码,查找原因 因为页面时utf 编码 zend 设置的 gbk 编码, 修改 zend 设置 edit – set encoding 修改 other utf-8单个PHP文件中文乱码问题解决方法

  首先使用zend studio7打开一个UTF8编码的PHP文件,点击FileProperties,出现如下界面

配置zend studio7文件字符编码以解决中文乱码问题

  我们可以看到zend studio默认的字符编码为GBK,正是这个原因导致当文件字符编码与zend studio默认的字符编码不一致,才会导致中文乱码问题,我们只要点击Other,选择UTF-8,确定即可恢复PHP文件中文正常显示。

  调试项目时中文乱码问题解决方法

  相对单个PHP文件出现中文乱码问题的解决方法,调试项目出现PHP文件乱码问题,唯一的区别在于进入的途径不一样,你需要选中相应的项目,右键选择Properties或者选择菜单ProjectProperties进入如下界面

配置zend studio7项目字符编码解决中文乱码问题

  可以看到界面基本和之前的一样,你只要选择和项目本身字符编码相匹配的编码即可解决中文乱码问题。

  zend studio中文乱码解决方法注意事项

  在选择字符编码时,当zend studio提供的字符编码选项中没有你想要的字符编码时,你可以在Other框中手动输入相应的字符编码,但是请注意大小写,最好是大写,因为我发觉字符编码小写时感觉zend studio7转换中文乱码不是很稳定。

解决PHP导出CSV文件中文乱码问题

英文名:Comma Separator Value(逗号分隔值),常用来数据转换的中间文件存在,比如:从Mysql中导出数据到CSV中。在web系统中经常遇到要导出报表数据,也会用到csv格式,使用utf-8编码导出CSV文件,打开后里边的中文成了乱码 (Windows下CSV文件默认与Microsoft Excel关联),用文本编辑器打开正常,不过排版很乱。原因:缺少BOM,又是微软画蛇添足。

Byte Order Mark(比特序标记),微软定义的一种头部结构。

为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE字符开头。这作为一个”特征符”或”字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序(big-endian或little-endian),具体的对应关系见下表。

Bytes Encoding Form

00 00 FE FF UTF-32, big-endian

FF FE 00 00 UTF-32, little-endian

FE FF UTF-16, big-endian

FF FE UTF-16, little-endian

EF BB BF UTF-8

类Unix系统中并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。

我们在使用PHP导出csv文件时, 如果只使用file_put_contents 或者 fwrite 写入了表格数据, 而我们生成csv的平台不一定遵循微软的bom协议,导致如果输出非unicode编码的csv文件(例如utf-8),并且没有生成bom信息的话,Excel自动按照unicode编码读取,就会出现乱码问题了。而没有写入BOM头信息,就会出现打开中文乱码的情况。

Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unicode编码读取。

如果想使用utf-8格式,确保php源码是utf-8,我们可以在第一行写入utf-8对应的BOM信息

代码如下:

$bom = pack(\’CCC\’, 0xef, 0xbb, 0xbf); // 和上面的对应

file_put_contents(\’pythontab.csv\’,$bom, FILE_APPEND);

file_put_contents(\’pythontab.csv\’,$someData, FILE_APPEND); //写入你想要写入表格的数据

前后都省略了部分代码, 只写了最关键的部分, 其它部分大家自行补充即可。

这样生成的csv就不会出现中文乱码问题啦。

注意:写入的BOM头信息要和文件的编码对应。

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。