记事本的一个BUG
作者:网络转载 发布时间:[ 2015/2/25 15:18:46 ] 推荐标签:缺陷管理 Bug 软件测试管理
我们常用的小工具,系统中附件里的“记事本”工具,有个比较有意思的BUG,让我们按以下步骤来看看。
1. 在开始菜单的附件里打开记事本
2. 复制引号中的内容,粘贴到记事本里“AAAA BBB CCC DDDDD”
3. 把它保存到桌面上,文件名任意,然后关闭记事本程序
4. 在桌面上打开刚才保存的文件
现在看到的都是一个个黑色的格子。而刚才输入的内容都不见了,是不是很有意思呢,我们再把记事本删除,再粘贴一下刚复制的内容,保存并关闭记事本。再次打开该文件,现在又可以正常显示文件内容了,呵呵是不是很有趣呢。
在实验中发现,如果打开记事本,输入“联通”也可以达到同样的效果,呵呵,我们可爱的记事本是不是非常有趣呢。
我对windows记事本bug的解释
这个bug在windowsXP sp1,sp2中都用,其他版本的windows是否有我没试过,不过我估计windows2000和2003都会存在。
bug演示:
记事本新建一个文本,打开以后输入: 联通 这两个字, 保存 ,关闭记事本。
再打开,你看看变成什么了?
有一个开玩笑的说法是因为中国联通把微软中国得罪了……
其实我看是微软中国那帮家伙水平不行,对多语言编码弄得不好造成的
我分析了一下原因,
记事本保存的时候,默认使用ansi编码
但是用ansi编码呢,联通这两个字的开头正好是:fffe..... 这样的,于是再打开呢,他以为是utf-8编码了,但是按照utf-8来解码呢,却造成乱码了。
我解释完毕,你满意否?
之所以我会想起来解释这个bug,是由于近开发一个软件涉及到一些编码方面的问题,微软windows这个bug弄得我的软件生成的文件到现在还无法正常移植到其他平台上。
呵呵
shinzeal 2005-1-29 04:53 PM
我再具体进行分析一下:
以下是“联通”二字在不同编码下的16进制代码:
FF FE 54 80 1A 90 (Unicode)
FE FF 80 54 90 1A (Big Unicode)
FF FE 54 80 1A 90 (UTF-8)
FF FE 6A 00 68 03 (ANSI)
可以看出来,Unicode和UTF-8编码下,联通二字的编码是一样的,而Big Unicode是和Little Unicode(简称Unicode)正好相反的编码方式,一般Intel体系的计算机用Little Unicode编码效率较高。而文件头FF FE和FE FF则被微软用来作为区分文件是Little Unicode还是Big Unicode的标志。同时呢,由于UTF-8也是缘于Unicode编码方式的,微软在UTF-8编码的文件前面也加上了FF FE用来作为标志。
可是这样一来,用ANSI编码保存的文件出问题了,因为联通二字的ANSI编码正好是以FFFE开头的,这样以ANSI编码保存以后再次打开,记事本首先检测到FFFE,认为是UTF-8编码了,于是按照UTF-8编码打开以后会显示为乱码。
利用这个原理,大家可以试试,找到以ANSI编码保存时开头为FFFE的其他文字,同样可以实现和 联通二字在记事本中造成的bug一样的效果
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11