当前位置:C++技术网 > 资讯 > 经典乱码“烫烫烫”和“屯屯屯”

经典乱码“烫烫烫”和“屯屯屯”

更新时间:2015-10-23 17:10:01浏览次数:1+次


    程序猿有个经典的内部笑话:手持两把锟斤拷,口中疾呼烫烫烫。

    写过代码的人都碰到过。

    烫烫烫和屯屯屯产生自VC,这是debug模式下VC对内存的初始化操作。VC会把栈中新分配的内存初始化为0xcc,而把堆中新分配的内存初始化为0xcd。(0xcc恰好是终端指令int 3,算是保护吗?)把0xcc和0xcd按照字符打印出来,就是烫和屯了。

    还有锟斤拷,这个是字符编码造成的。在进行从老的编码体系到unicode的转换过程中,部分字符不能转化,于是unicode给了它们一个特殊的占位符U+FFFD,这个用UTF-8表示就成了\xef\xbf\xbd。如果出现两个连着的\xef\xbf\xbd\xef\xbf\xbd,按照两个字节一个字显示成汉字,就成了锟斤拷这三个字。