桌面记事本软件测试工资,记事本的一个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一样的效果

21/212>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值