大家好,欢迎来到IT知识分享网。
程序员专属暗语:
上联:手持两把锟斤拷,口中疾呼烫烫烫。
下联:脚踏千朵屯屯屯,笑看万物锘锘锘。
按照惯例,一图解千愁:
一、锟斤拷
UTF-8字符集,当出现目前无法显示的字符时,用一个占位符号0x ef bf bd(3Bytes大小)填充。
当出现一连串的无法显示字符时,会被填充为0x ef bf bd ef bf bd ……
当把这个UTF-8编码方式的数据以GBK编码方式打开时,就会出现问题了。
因为GBK是以2Bytes大小进行解码的,所以上述的(0x ef bf bd ef bf bd ……)就会解码为:
0x ef bf —— 锟 (GBK解码)
0x bd ef —— 斤(GBK解码)
0x bf bd —— 拷(GBK解码)
二、烫、屯
这个就不是字符集的问题了。
这要先说微软VC编码器的设置了,当进入debug模式时,会有以下情况:
1、未初始化栈区内存:
会被编译器设置为0xcc,其实也是对应着INT3软中断指令的机器码:0xcccc…
0x cc cc cc cc —— 烫烫烫烫 (GBK解码)
2、未初始化堆区内存:
会被编译器设置为0xcd
0x cd cd cd cd —— 屯屯屯屯 (GBK解码)
3、未初始化的堆内存前后会有一个4B的围栏:
围栏:0x fd fd fd fd
4、销毁的堆区内存:
会被设置为:0x dd dd dd dd
三、锘锘锘
(我不知道了,目前没见过,见到了再补充)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/115714.html