Python支持中文汉字编码经验总结

来源:互联网 发布:mac下安装php开发环境 编辑:程序博客网 时间:2024/05/16 18:34

source:      http://xufive.blog.163.com/blog/static/172326168201092461958839/

每次处理汉字,总要出现一些意外。最容易出现的问题有:

  • 从输入对话框获取的包含汉字的字符串,写入数据库后再读出来,变成乱码。
  • 从文件对话框中获取的文件路径,不能被处理文件的模块接受。
  • 使用Inno打包程序,不能使用中文路径。

Python中的字符串有str和unicode两种形式,两者之间不能连接,也不能比较。汉字编码,常见的有gbk和utf-8等形式,gb2312/cp936和gbk基本上是重合的。我曾经以为,utf-8编码之后就是unicode类型的字符串,结果导致概念不清,错误不断。事实上,gbk和utf-8编码之后,都是str类型的字符串,字符串前面加上u生成的才是unicode类型的字符串。gbk字符串、utf-8字符串和unicode字符串是可以相互转换的,其关系如下图所示:

Python汉字编码经验总结 - 捕风捉影 - 捕风捉影

至于如何确认一个字符串是哪一种类型的变量,则是一个很简单的问题:可以使用type()来检查字符串类型。例如:

Python汉字编码经验总结 - 捕风捉影 - 捕风捉影