Windows记事本如何解释字符

时间:2011-07-20 22:28:41

标签: windows encoding utf-8 notepad hex-editors

我想知道windows如何解释字符,例如:

我使用带有3个字节E3 81 81的Hexeditor创建了一个文件。 这些字节是编码为UTF-8的"ぁ"字符。

我打开记事本,显示"ぁ"

我没有指定文件的编码,我只是创建了字节。 并且记事本正确地解释了它。

记事本是否猜测编码可能是什么? 或是十六进制编辑器使用特定编码保存这些字节。

5 个答案:

答案 0 :(得分:4)

如果文件只包含这三个字节,则根本没有关于使用哪种编码的信息。

字节只是一个字节,并且无法在其中包含任何编码信息。此外,十六进制编辑器甚至不知道您打算将数据解码为文本。

记事本通常使用ANSI编码,因此如果它将文件读取为UTF-8,则必须根据文件中的数据猜测编码。

如果您将文件保存为UTF-8,记事本会将BOM(字节顺序标记)EF BB BF放在文件的开头。

答案 1 :(得分:3)

记事本做出了有根据的猜测。我不知道细节,但加载前几千字节并尝试将它们从UTF-8转换起来非常简单,所以它可能会做类似的事情。

答案 2 :(得分:2)

答案 3 :(得分:2)

有一种简单有效的方法可以检查文件是否为UTF-8。参见维基百科:http://en.wikipedia.org/w/index.php?title=UTF-8&oldid=581360767#Advantages,第四个要点。记事本可能会使用它。

维基百科声称Notepad使用了IsTextUnicode函数,该函数检查是否用UTF-16写入了心室文本(它可能已经停止在Windows Vista中使用它,修复了“布什隐藏事实”的错误):{{3 }}。

答案 4 :(得分:0)

  

如何识别文件是以哪种编码方式....?

转到该文件并尝试(保存AS),您可以默认查看文件的编码。(保存编码格式)