file_put_contents 写入文件,json,ajax中文乱码解决
2018-02-28 22:45
906 查看
cms网站是gb2312的,但是json,ajax等用法,只要涉及中文时,都要求是utf-8编码,所以,必须在php中就要进行转码.
转码后的文本发送到gb2312编码的html页面时, 你不必担心在网页中乱码问题..
如果不确定你的原始内容是什么编码,可以这样检测
如果返回euc-cn 说明是gb2312的.用file_put_contents写入文件时,建议用以下函数进行转码.例如
以下是转码函数
转码后的文本发送到gb2312编码的html页面时, 你不必担心在网页中乱码问题..
如果不确定你的原始内容是什么编码,可以这样检测
$encode = mb_detect_encoding($new, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); //php
如果返回euc-cn 说明是gb2312的.用file_put_contents写入文件时,建议用以下函数进行转码.例如
file_put_contents('123.txt', charsetToUTF8($new));
以下是转码函数
/** * 将非GBK字符集的编码转为GBK * * @param mixed $mixed 源数据 * * @return mixed GBK格式数据 */ function charsetToGBK($mixed) { if (is_array($mixed)) { foreach ($mixed as $k => $v) { if (is_array($v)) { $mixed[$k] = charsetToGBK($v); } else { $encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); if ($encode == 'UTF-8') { $mixed[$k] = iconv('UTF-8', 'GBK', $v); } } } } else { $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); //var_dump($encode); if ($encode == 'UTF-8') { $mixed = iconv('UTF-8', 'GBK', $mixed); } } return $mixed; } /** * 将非UTF-8字符集的编码转为UTF-8 * * @param mixed $mixed 源数据 * * @return mixed utf-8格式数据 */ function charsetToUTF8($mixed) { if (is_array($mixed)) { foreach ($mixed as $k => $v) { if (is_array($v)) { $mixed[$k] = charsetToUTF8($v); } else { $encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); if ($encode == 'EUC-CN') { $mixed[$k] = iconv('GBK', 'UTF-8', $v); } } } } else { $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5')); if ($encode == 'EUC-CN') { $mixed = iconv('GBK', 'UTF-8', $mixed); } } return $mixed; }
相关文章推荐
- PHP文件写入函数file_put_contents并发追加写入丢失内容问题解决方法
- dhl:ajax无法跨域改用getJSON(解决服务器返回json数据中文为乱码的问题$.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; chars)
- Java IO 读取/写入文件 中文乱码困难解决代码
- 将Json字符串写入空白文件(解决乱码)
- file_put_contents() failed to open stream: Permission denied 问题解决(生成日志文件)
- file_put_contents() -- 写入文件内容
- nodejs读取本地中文json文件出现乱码解决方法
- PHP使用内置函数file_put_contents写入文件及追加内容的方法
- JavaScript传中文值给Action出现乱码问题解决和返回ajax 返回 输出 json 乱码
- jsp,ajax,json,servlet前后台传值中文乱码解决方法
- ajaxfileupload_v.js 解决js版本不兼容,多文件上传不解析json的问题
- Java中按照行读取和写入文件 日志常用操作 解决中文乱码问题
- andorid 解压zip文件、android中文文件存放问题、asset里不能放中文名文件的解决方法、用File读asset的路径的问题、把asset的文件写入机器
- scrapy相关 通过设置 FEED_EXPORT_ENCODING 解决 unicode 中文写入json文件出现`\uXXXX`
- php 字符串写入文件或追加入文件(file_put_contents)
- PHP使用file_put_contents写入文件file_get_contents采集内容
- file_put_contents() failed to open stream: Permission denied 问题解决(生成日志文件)
- ztree通过ajax加载json数据中文乱码的解决方法:springmvc配置
- file_put_contents 保存文件时乱码
- Python实现的json文件读取及中文乱码显示问题解决方法