ANSI与UTF-8相比似乎有限,但它是Notepad ++中的默认文件编码,所以我想知道。对于源代码文件编码,ANSI是否比丰富的编码系统(如UTF-8)有任何优势?
0
A
回答
3
好吧,如果你可以编码在ANSI一切(无论ANSI恰好意味着您的计算机上,它是一个可怕的含糊的字眼),那么它可能是UTF-8短。对于非ASCII字符,ANSI编码仍然可以将每个字符编码为单个字节,而在UTF-8中它们需要更多字节。
这是一个很小的优势虽然和缺点是显著IMO - 我会肯定使用UTF-8去。
1
严格地说,“好处”可能是因为使用它可能会占用更少的字节,因为有许多字符在ANSI的一个字节中编码,而在UTF-8中有两到三个字符。例如,弗洛林,mdash,ndash,时代符号和一些重音罗马字母。
在Windows API中有本地操作,可能会更快。
虽然放弃了很多,但限制了自己的256个字符,而不是UTF-8的100万以上。
1
Expading上Jon的答案:
为UTF-8编码的空间要求,因为萃取Wikipedia's UTF-8 article和格式化/略微组合:
- 所以第128(范围
[0, 0x7f]
)字符(US-ASCII)需要一个字节。 - 接下来的1,920(范围
[0x80,0x07ff]
)字符需要两个字节进行编码。 ... - 基本多语言平面(其中几乎包含所有常用字符)的其余部分(范围为
[0x0800,0xffff]
)需要三个字节。 - Unicode的其他平面中的字符需要四个字节,其中包括不常见的CJK字符和各种历史脚本。
寻找在ANSI to Unicode mapping可以看出一半的ANSI字符(ASCII集)使用Unicode(1个字节编码),数超过127也落入[0,0x7FF]
Unicode的范围内的值的对准(2字节),并且在0x07ff
(需要3个字节以UTF-8编码)映射到Unicode上的常用值较少。现在
,至于为什么是默认的编码方式 - 跟记事本++作者:)
编码愉快。
相关问题
- 1. 代码中间是否有优势?
- 2. 编写ANSI C代码的资源
- 3. 用BOM编译(javac)UTF8编码的Java源代码
- 4. 用于ANSI的编码 - vb.net
- 5. 丰富的文本编辑笔记(与代码片段)
- 6. Perl代码将ANSI编码格式的xml文件保存为UTF-8编码
- 7. 写入汇编代码系统编程
- 8. C++ UTF8编码
- 9. utf8和编码
- 10. C#UTF8编码
- 11. UTF8编码含+
- 12. UTF8编码/€
- 13. 是否有可能在vala中编写系统级代码
- 14. 编码这种或那种方式是否有性能优势?
- 15. 是否有任何免费的代码编辑器WinForms控件?
- 16. Dojo是否有任何编码标准?
- 17. PHP utf8编码和解码
- 18. UTF8编码无法解码
- 19. UTF8 python编码和解码
- 20. 比较UTF8编码的字符
- 21. 设计模式丰富的代码库?
- 22. 用于ODE系统的Python编码
- 23. 解码反编译的源代码对于Android
- 24. UTF8编码问题?
- 25. UTF8编码问题
- 26. 是否有任何文件学习使用win32com编码excel宏?
- 27. 是否有任何纯文本验证码系统可用?
- 28. 托管代码的优势
- 29. Eclipse:是否可以编辑通过源代码“附件”知道的Java源码
- 30. 将文本文件的编码从ANSI更改为UTF8,而不会影响C#中文件的任何字符!
在源代码中使用除ASCII以外的任何其他内容的人应该被拍摄并触发。您可能认为ANSI或UTF-8是有意义的,但它不会,除非语言规范指定了编码。字符串和whatnots **必须被外化,否则你的代码库就是一个笑话。许多人会不同意,但是在混合的OS/IDE /“文本编辑器”等环境中,如果您的源代码不仅仅是ASCII,那么您正在**求大麻烦。如果** ANY **源文件不是用于没有强制执行特定文件编码的语言的ASCII文件,我自己编写了脚本,使编译失败。 – SyntaxT3rr0r
诚实地说,当我看到人们有*“源文件编辑/解析/构建脚本”*与文件编码有关的问题时,我不知道我是否应该笑或哭。问题的根源很简单:如果您使用的是**任何内容**,但是没有元数据,则该语言未指定您要烘烤的编码**。就那么简单。 – SyntaxT3rr0r
请注意,一些语言,如Google的Go,如果我没有弄错,在spec(!)UTF-8中指定为必需的文件编码。在那种情况下,在这种情况下,只有非ASCII是好的。但是,您不能在ANSI或UTF-8或EBCDIC之间“选择”:使用语言规范指定的内容。 – SyntaxT3rr0r