vue填坑记录:axios 返回中文乱码问题

您所在的位置:网站首页 返回的中文乱码 vue填坑记录:axios 返回中文乱码问题

vue填坑记录:axios 返回中文乱码问题

#vue填坑记录:axios 返回中文乱码问题| 来源: 网络整理| 查看: 265

以前接口都是php写的,echo 出 json 串给页面jQuery ajax用的。

//.php file format gbk public function queryHeroList(){ $hero = '[{"ename":105,"cname":"廉颇","title":"正义爆轰","pay_type":10,"new_type":0,"hero_type":3,"skin_name":"正义爆轰|地狱岩魂"}]'; echo iconv('gbk','utf-8',$hero);exit(); }

返回的是unicode编码的,如下格式:

[{"ename":120,"cname":"\u767d\u8d77","title":"\u6700\u7ec8\u5175\u5668","new_type":0,"hero_type":3,"skin_name":"\u6700\u7ec8\u5175\u5668|\u767d\u8272\u6b7b\u795e|\u72f0"}]

浏览器看到的是如下response head

奇怪的是,,,在pc浏览器上,一切正常,axios取到的数据,插入到页面上,显示也没有乱码。但是,放到iphone UC浏览器上就有问题了,乱码。

我们看下 axois 的参数:

// `responseType` indicates the type of data that the server will respond with // options are 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream' responseType: 'json', // default // `responseEncoding` indicates encoding to use for decoding responses // Note: Ignored for `responseType` of 'stream' or client-side requests responseEncoding: 'utf8', // default

默认按照utf-8格式去解析。估计是这个原因了,

因此,咱们最好还是在php接口上显示注明一下编码 Header,如下:

//.php file format gbk public function queryHeroList(){ $hero = '[{"ename":105,"cname":"廉颇","title":"正义爆轰","pay_type":10,"new_type":0,"hero_type":3,"skin_name":"正义爆轰|地狱岩魂"}]'; header("Content-Type:application/json;"); //php文件是gbk格式,但是吐出数据声明是utf8的。 echo iconv('gbk','utf-8',$hero);exit(); }

即可解决问题了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3