python读写unicode文件之utf-16
2013-06-03 21:27
716 查看
很多文章都提到了 import codecs,的确!
但是有的在处理unicode时只考虑utf-8,或者简单utf-16.
但是utf-16使用时还容易报错,原因就是utf-16会默认检测BOM(byte order mark),如果有的文件创建时没有,则python无法正常读取,这是就要考虑utf_16_le等。
------------------------------------
utf_16、utf_16_le、utf_16_be、utf_8
引用下:http://blog.csdn.net/skeleton703/article/details/8433375 以及
http://blog.csdn.net/pkrobbie/article/details/1451437
Python核心库的open函数是按照ascii设计的。但是,现在我们越来越多地要面对Unicode文件。好在python提供了codecs模块,帮我们解决了这个问题。使用中有一些需要注意的问题。
codecs模块的open定义如下
open(filename, mode[, encoding[, errors[, buffering]]])Open an encoded file using the given mode and return a wrapped version providing transparent encoding/decoding.
其中前两个参数filename和mode和默认的open相同。第三个参数encoding是关键,制定了文件的编码方式。
对于常用的Unicode有这几种utf_16、utf_16_le、utf_16_be、utf_8,每一种还有一些可用的别名,具体可以查找python manual。
utf_16、utf_16_le、utf_16_be参数的区别是这样的。
如果指定了utf_16,python会检查文件的BOM(Byte Order Mark)来判断,文件类型到底是utf_16_le、utf_16_be。对于没有BOM的文件会报错。
如果我们直接指定了utf_16_le、utf_16_be,python就不检查BOM了。对于没有BOM的文件很好用。但是,对于有BOM的文件就要注意,它会把BOM当作第一个字符读入
但是有的在处理unicode时只考虑utf-8,或者简单utf-16.
但是utf-16使用时还容易报错,原因就是utf-16会默认检测BOM(byte order mark),如果有的文件创建时没有,则python无法正常读取,这是就要考虑utf_16_le等。
------------------------------------
utf_16、utf_16_le、utf_16_be、utf_8
引用下:http://blog.csdn.net/skeleton703/article/details/8433375 以及
http://blog.csdn.net/pkrobbie/article/details/1451437
Python核心库的open函数是按照ascii设计的。但是,现在我们越来越多地要面对Unicode文件。好在python提供了codecs模块,帮我们解决了这个问题。使用中有一些需要注意的问题。
codecs模块的open定义如下
open(filename, mode[, encoding[, errors[, buffering]]])Open an encoded file using the given mode and return a wrapped version providing transparent encoding/decoding.
其中前两个参数filename和mode和默认的open相同。第三个参数encoding是关键,制定了文件的编码方式。
对于常用的Unicode有这几种utf_16、utf_16_le、utf_16_be、utf_8,每一种还有一些可用的别名,具体可以查找python manual。
utf_16、utf_16_le、utf_16_be参数的区别是这样的。
如果指定了utf_16,python会检查文件的BOM(Byte Order Mark)来判断,文件类型到底是utf_16_le、utf_16_be。对于没有BOM的文件会报错。
如果我们直接指定了utf_16_le、utf_16_be,python就不检查BOM了。对于没有BOM的文件很好用。但是,对于有BOM的文件就要注意,它会把BOM当作第一个字符读入
相关文章推荐
- python读写UCS-2 big/little endian(utf-16-be/utf-16-le)格式的文件
- 【Python开发】python读写文件,和设置文件的字符编码比如utf-8
- 未测试 Delphi读写UTF-8、Unicode格式文本文件
- python读写文件,和设置文件的字符编码比如utf-8
- Learn Python The Hard Way学习(16) - 读写文件
- python编码及文件编ASCII,Unicode和UTF-8相关知识
- paip.utf-8,unicode编码的本质输出unicode文件原理 python
- python 之编码转换 unicode, utf-8, utf-16, GBK
- python16 文件的读写
- 笨方法学习Python-习题16: 读写文件
- 笨方法学Python 习题 16: 读写文件
- Python读写unicode文件的方法
- Python 文件操作中的读写模式:open(path, '-模式-',encoding='UTF-8')
- 读写UTF-8、Unicode文件(加上了文件头,貌似挺好用)
- paip.utf-8,unicode编码的本质输出unicode文件原理 python
- paip.utf-8,unicode编码的本质输出unicode文件原理 python
- python 应用unicode读写txt文件
- php读取淘宝数据包csv文件 unicode ucs-2 utf-16 中文乱码问题解决
- Delphi读写UTF-8、Unicode格式文本文件
- [Python] 中文编码问题:raw_input输入、文件读取、变量比较等str、unicode、utf-8转换问题