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

本文解析了程序开发中常见的烫烫烫和锟斤拷现象,介绍了这些神秘字符背后的技术原因,包括VC调试模式下的内存初始化操作以及字符编码转换过程中的特殊占位符。
     程序猿有个经典的内部笑话:手持两把锟斤拷,口中疾呼烫烫烫。

     写过代码的人都碰到过。最近从Google搜索页调到百度的网页上大量出现锟斤拷,不知怎么回事。

     烫烫烫和屯屯屯产生自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,按照两个字节一个字显示成汉字,就成了锟斤拷这三个字。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值