codecs.open()
的文档提到文件总是以二进制模式打开,即使没有指定二进制模式。这是为了避免由于编码使用8位值而导致数据丢失。使用文本模式打开文件会导致什么样的“数据丢失”?听起来好像在文本模式下打开文件可能会将字节截断为7位,但我在文档中找不到任何关于此的提及:文本模式仅描述其作为一种转换换行符的方式,没有提到潜在的数据丢失。那么,codecs.open()
的文档是指什么?PS:虽然可以理解自动换行符转换为平台相关的换行符编码需要一些注意,但问题是关于8位编码的具体内容。我猜想只有一些编码与自动换行符转换兼容,无论它们是8位还是7位编码。那么,为什么在codecs.open()
的文档中单独提到8位编码?
\n
转换(这是有充分文献支持的)。相反的操作由U
模式(通用换行符)给出。 - Eric O. Lebigot