冷笑话-手持两把锟斤拷 口中疾呼烫烫烫 脚踏千朵屯屯屯 笑看万物锘锘锘
手持两把锟斤拷 口中疾呼烫烫烫 脚踏千朵屯屯屯 笑看万物锘锘锘
就用这个冷笑话来作为第一篇把,应该都通过这个冷笑话吧,也是编程中经常会遇到的问题。。。
聊聊原理吧。。
这一句在百度百科中可以查到,主要是因为在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