首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符编码

字符编码
EN

Stack Overflow用户
提问于 2010-06-10 16:34:12
回答 3查看 430关注 0票数 2

我的文本编辑器允许我以几种不同的字符格式编码: Ansi、UTF-8、UTF-8(No BOM)、UTF-16LE和UTF-16BE。

它们之间的区别是什么?

通常被认为是最好的格式是什么(我使用Python,如果有区别的话)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-10 16:42:32

  • "Ansi“是一个用词不当的词,通常指的是当前平台上的默认8位编码(在通常为Windows-1252的”西方“Windows安装上)。它只支持很小的字符集(256个不同的字符在most).
  • UTF-8是一种可变长度,ASCII码兼容的编码,能够存储任何和所有Unicode字符。对于应该支持所有Unicode字符的西方文本来说,这是一个非常好的选择,而且在一般情况下也是一个非常可行的选择。
  • “UTF-8 (no BOM)”是Windows给不用编写Byte Order Marker的情况下使用UTF-8的名称。由于BOM对于UTF-8是不需要的,所以不应该使用它,这将是正确的选择(几乎每个人都将这个版本简称为"UTF-8"!).
  • UTF-16LE UTF-16BE Little Endian and Big Endian版本的UTF-16编码。作为UTF-8,UTF-16能够表示任何Unicode字符,但是它不是ASCII-compatible.

一般来说,UTF-8是一个很好的整体选择,并且具有广泛的兼容性(只需确保不要编写BOM,因为这是大多数其他软件所期望的)。

如果大部分文本由非ASCII字符组成(即不使用基本的拉丁字母),则UTF-16可以占用较少的空间。

只有在特定需要与不支持Unicode的旧版应用程序进行交互时,才应该使用"Ansi“。

关于任何编码的重要一点是,它们是除了数据之外还需要通信的元数据。这意味着必须知道某些字节流的编码,才能正确地将其解释为文本。因此,您应该使用记录实际使用的编码的格式(这里的主要示例是XML),或者在给定的上下文中标准化单个编码并仅使用该编码。

例如,如果您开始了一个软件项目,那么您可以指定所有源代码都使用给定的编码(同样:我建议使用UTF-8)并坚持使用该编码。

特别是对于Python文件,有a way to specify the encoding of your source files

票数 8
EN

Stack Overflow用户

发布于 2010-06-10 16:35:53

Here。请注意,"ANSI“通常是CP1252。

票数 3
EN

Stack Overflow用户

发布于 2010-06-10 16:37:49

你可能会得到最好的实用工具与UTF-8没有物料清单。忘记ANSI和ASCII的存在吧,它们是过时的恐龙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3012821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档