冷笑话-手持两把锟斤拷 口中疾呼烫烫烫 脚踏千朵屯屯屯 笑看万物锘锘锘

  手持两把锟斤拷 口中疾呼烫烫烫 脚踏千朵屯屯屯 笑看万物锘锘锘

  就用这个冷笑话来作为第一篇把,应该都通过这个冷笑话吧,也是编程中经常会遇到的问题。。。

  聊聊原理吧。。

  锟[kūn]斤拷http://baike.baidu.com/link?url=GCoDM7HBIV_JcJfXzIU9p1Rx7r8Ns2w6jVoZwnhn9ZizxhNG7egrUWojSETDzxb74uZFeVGIBK_qZYgNTo7So_

这一句在百度百科中可以查到,主要是因为在unicode编码转成GBK是出错的,因为并不是所有的字都能够用unicode表示,因此就会导致一些unicode无法比较的字默认填充一些字符,而unicode一般填充的是 \xef\xbf\xbd(UTF-8),而反复填充这些字符,就类似于这种形式:

\xef\xbf\xbd\xef\xbf\xbd,而当使用GBK进行解析的时候,按照汉字占两个字节的规则,0xEFBF就对应“锟”, 0xBDEF对应“斤”,0xBFBD对应“拷”,所以就出现了这乱码了。

  烫烫烫屯屯屯其实是一个原理,是我们在使用VC中文版的时候经常出现的问题,主要原因是我们使用了没有赋初值的局部变量,而VC中

会对没有赋初值的部分自动填充一些初始字符, 一般填充 0xCC,两个连起来两个字节对应的就是“烫”,有些填充的是0xCD,相应的就是“屯”。

 

  锘锘锘 则是网页的乱码,也是编码问题,utf-8 与 GBK/gb2312 

参考:http://blog.zcnhonker.net/archives/198

posted @ 2015-04-17 23:22  ct_usl  阅读(26100)  评论(1编辑  收藏  举报