Ajax传送含中文字符的问题

Devqin 发布于 2013/09/18 17:54
阅读 289
收藏 0
PHP
如题,页面时gbk编码,在页面上写一段js,如下
var cat="cat";
var keywords="红薯";        
$.post("/Index/so",  {"cat":cat,"keywords":keywords},function(data){
alert(data);
            });
php接收到数据之后,发现"红薯"变成了"%E7%BA%A2%E8%96%AF",到这里还是可以理解的,发送过程中对中文进行了编码。于是用$keywords = '"'.$_POST['keywords'].'"';urldecode($keywords);进行解码于是"红薯"乱码了?求教,如何在php里正确显示"红薯"
加载中
0
Gillian_Male
Gillian_Male
这个应该是你编码方式的问题吧
0
Arrowing
Arrowing
js前端用encodeURIComponent编码
苏生不惑
苏生不惑
+1024
0
iSea
iSea
两边编码不一致造成的,解码的时候得指定gbk吧
0
Tuesday
Tuesday

楼主, 你为什么觉得可以理解呢?

我是无法理解, 只看到post, 我php学得不好, 我记得post是不转义任何字符的....

Devqin
Devqin
你可以试试,在前台发送一个ajax请求,后台打印一下
0
Tuesday
Tuesday
所以请确认是以上代码引起的???
0
e国阳光
e国阳光
不管网页用什么编码,ajax都是utf-8,服务端第一个响应post的必须采用utf-8,否则就要出现乱码。在黑夜中多次摸索的结果。
0
一号男嘉宾
一号男嘉宾
解码两次即可
返回顶部
顶部