什么是UTF-8编码?为什么以此格式保存的文本文件比另一个更大?
例如,我在记事本中键入了“A”并以UTF-8格式保存。
之后,文件大小变为:4个字节。为什么呢?
答案 0 :(得分:6)
几乎可以肯定,因为无论你使用什么来保存文件,还包括byte order mark,其中UTF-8是0xEF 0xBB 0xBF。
至于UTF-8是什么 - 它是一种Unicode编码,它使用越来越多的字节来获得更高的Unicode值;重要的是,ASCII字符存储为单个字节(与ASCII中的字节相同)。因此任何ASCII文件也是具有相同文本的UTF-8文件。 This web page有更多,Wikipedia也是如此。
答案 1 :(得分:2)
因为在文件的开头插入了BOM(字节顺序标记)。
BOM是一个特殊字符U + FEFF,除了作为检测文件编码的方法之外没有任何意义。您可以在此处阅读:http://unicode.org/faq/utf_bom.html#BOM
对于UTF-8,BOM编码为\ xEF \ xBB \ xBF,这是3个额外字节的来源。记事本和其他文本编辑器查找BOM以猜测文件的编码。如果它看到\ xFF \ xFE,它将假设它是以小端格式编码的UCS-2。 \ xFE \ xFF表示以大端格式编码的UCS-2。
答案 2 :(得分:2)
这只是因为BOM,字节顺序标记。 UTF-8仅扩展数值大于127(非ASCII)的字符。
并非所有文本编辑都这样做。记事本因其臭名昭着(无用的UTF-8 BOM)。