我的文本编辑器允许我以几种不同的字符格式进行编码 Ansi、UTF-8、UTF-8(无 BOM)、UTF-16LE 和 UTF-16BE。
它们之间有什么区别?
什么通常被认为是最好的格式(如果有区别,我正在使用 Python)?
一般来说,UTF-8 是一个很好的整体选择并且具有广泛的兼容性(只要确保不要编写 BOM,因为这是大多数其他软件所期望的)。
如果您的大部分文本由非 ASCII 字符组成(即不使用基本的拉丁字母),UTF-16 可能会占用更少的空间。
仅当您有特定需要与不支持 Unicode 的遗留应用程序交互时,才应使用“Ansi”。
任何编码的重要一点是,它们是除了数据之外还需要进行通信的元数据。这意味着您必须知道某些字节流的编码才能正确地将其解释为文本。因此,您应该使用记录所使用的实际编码的格式(XML 是这里的主要示例),或者在给定的上下文中标准化单个编码并仅使用它。
例如,如果您开始一个软件项目,那么您可以指定您的所有源代码都采用给定的编码(再次:我建议使用 UTF-8)并坚持下去。
特别是对于 Python 文件,有一种方法可以指定源文件的编码。
您可能会通过UTF-8 No BOM 获得最大的实用程序。忘记 ANSI 和 ASCII 的存在,它们是不推荐使用的恐龙。
在这里。请注意,“ANSI”通常是 CP1252。