Python27 和 IronPython 处理文件读写的字符编码问题

又被 Python 的字符编码虐了。

 

平台:

Python27,IronPython

 

场景:

  1. 读取包含ASCII 字符的 UTF-8 编码的纯文本文件。
  2. 将包含ASCII 字符的 Unicode 字符串写入纯文本文件。

细节:

  • 打开文件可以用 open ,也可以用 module 'codecs' 下的 'open'(推荐使用)。codecs.open 的功能更强大,可以指定读取解析文件内容时所使用的编码格式。
  • 如果读取的文件头部包含 BOM(Byte order mark),那么用 Python27 读取时,BOM 会被当作内容读取进来,但在 IronPython 环境下,BOM 会被自动忽略。写文件时,考虑到文件将来可能会在其它地方被用到,这时候要考虑是否将 BOM 写入文件头部(方便识别编码)。
  • 最好不要在一个字符串(或数组)中夹杂多种编码格式的字符。从文件读取内容后,尽量将其转换成 Unicode 操作,直到必须进行编码时,再将其用具体格式编码。

 

你可能感兴趣的:(String,python,IO,IronPython)