与UTF-8相比,ANSI似乎有限,但它是Notepad ++中的默认文件编码,所以我很想知道。
答案 0 :(得分:3)
好吧,如果可以编码ANSI中的所有内容(无论ANSI在您的计算机上是什么意思;它是一个非常模糊的术语),那么它在UTF-8中可能会更短。对于非ASCII字符,ANSI编码仍然可以在一个字节中编码每个字符,而在UTF-8中它们将占用更多字节。
这是一个微小的优势,而且缺点是重要的IMO - 我绝对会选择UTF-8。
答案 1 :(得分:1)
严格来说,“好处”可能是使用它可能占用更少的字节,因为有许多字符在ANSI的一个字节中编码,在UTF-8中编码为两到三个。例如,弗罗林,mdash,ndash,时代符号和一些重音罗马字母。
Windows API中的本机操作可能会更快。
你放弃了很多,将你自己限制在256个字符而不是UTF-8的100万个字符。
答案 2 :(得分:1)
对Jon的回答进行了解读:
UTF-8编码的空间要求,如提取Wikipedia's UTF-8 article并稍加格式化/组合:
[0, 0x7f]
)字符(US-ASCII)需要一个字节。[0x80,0x07ff]
)字符需要两个字节进行编码。 ... [0x0800,0xffff]
)需要三个字节。查看ANSI to Unicode mapping可以看出,一半的ANSI字符(ASCII集)与Unicode(1字节编码)对齐,超过127的多个值也属于[0,0x7FF]
Unicode范围(2个字节),并且有较少的常见值在超过0x07ff
时映射到Unicode(需要3个字节才能以UTF-8编码)。
现在,至于为什么这是默认编码 - 与Notepad ++作者交谈:)
快乐的编码。