December 15, 2003

Windows记事本的一个Bug [Tech ]

  打开记事本->输入“联通”->保存->关闭->打开,结果如图所示。

  用UltraEdit打开此.txt文件,用二进制方式察看内容,如下图,看到“联通”的二进制代码为“FF FE 6A 00 68 03”,多了2个字节,并且FF FE那么高的区位肯定超出GB2312的范围。

  再看正常情况下,输入“联通戴云杰”。

  用UltraEdit以二进制方式打开,看到“联通”经GB2312编码后的二进制码应该是“C1 AA CD A8”。

  在Google内检验编码正确性:

  此Bug已经证明出现在XP、2000,其他系统未知。

Posted by xdanger at December 15, 2003 05:15 PM | TrackBack
TrackBacks
TrackBack URL for this entry: http://blog.xdanger.com/script/trackback.pl/48
Comments

关于这一问题目前最权威、圆满的解答:
刚好借此机会可以了解unicode/gb2312/ansi的区别...
http://www.pcpop.com/News/2003/12/10910.shtml

Posted by: windix at December 26, 2003 04:53 PM

这篇文章的意思是记事本程序打开文件时“猜”错了编码方式,问题是为何保存时就Bug了,如果是按照UTF-16的话,二进制码应该是“FF FE 54 80 1A 90”,不是“FF FE 6A 00 68 03”。所以打开的时候会“猜”错。

Posted by: xdanger at December 26, 2003 11:17 PM
Post a comment









Remember personal info?