解决Python和php之间通信编码不一致问题 | 马犇-技术博客

解决Python和php之间通信编码不一致问题

来源:本站原创 Python, 原创 超过11,258 views围观 2条评论

Python是在windows下的客户端,用的是cp936编码,php用的是utf-8编码,如果单纯使用urllib.urlencode编码之后post发送的话,php接收过来的中文会是类似\xb0\xe1这种形式的编码,即使在urlencode之前str.decode(“cp936”).encode(“utf-8”)做了编码转换也是没用的。后来查询手册查到一个urllib.quote()函数,用此方法成功解决!
python端:

str = "中文"
str = urllib.quote(str.decode("cp936").encode("utf-8"))
postData = {}
postData['str'] = str
...post请求发送代码...

php端:

$str = urldecode($_POST['str'])
echo $str;

完美解决乱码问题!