一直以来,python中的中文编码就是一个大问题,为他他并不能智能识别编码,而实际上其他语言也很难做到。
str和unicode对象的转换,通过encode和decode实现。
当我们向网页提交包含中文的表单数据时,常常会出现乱码的错误,拿我这几天对驾校网上打卡系统实践举例吧。
可以看到“姓名”那栏提交的数据为乱码的,为什么会出现这样的原因呢?
打开网页的源代码查看,发现:
从源代码可以发现,该网页的编码'gb2312'的,而我在Python程序中提交的表单数据是unicode编码的。在这里我使用了encode和decode解决这编码的问题。
程序如下:
s = '张三'
password = s.decode('utf-8').encode('gbk')
更改了程序之后,结果如下:
成功解决了表单数据提交乱码的问题。