bubble的备忘录

本blog主要用于常用资料的备忘、备份、备搜索

xmlhttprequest用post发送变成乱码的问题

配置:网页,JavaScript和响应的php都采用GB2312编码

问题:通过XMLHttpRequest采用POST模式向服务器端的php脚本发送异步请求,结果反馈的时候,php脚本中本身的中文字符可以正常显示,从客户端发送过去的中文字符再反馈回来之后则不能正常显示,而变成了乱码

问题成因:通过ajax传输时,是以UTF-8传送的,客户端本身的GB2312中文字符通过UTF-8传送,php脚本把这些中文字符自动作为UTF-8解码,于是变成乱码

解决方法:在PHP脚本端,对传送过去的数据重新编码,作为GB2312识别

Eg:
$name = $_POST['name'];//获取POST发送的数据
$name = iconv('utf-8', 'gb2312', $name);//将UTF-8编码转成GB2312

0 评论: