水木社区手机版
首页
|版面-电脑市场(CompMarket)|
新版wap站已上线
返回
1/1
|
转到
主题:看到个有意思的,分享之
楼主
|
ackerx
|
2020-12-22 17:19:53
|
展开
在程序员网站上经常看到一个段子(满满的都是泪啊)
手持两把锟斤拷,口中疾呼烫烫烫。
解释一下为什么会是这两个东西不是别的= =:
棍斤拷乱码:
源于GBK字符集和Unicode字符集之间的转换问题。Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话,一个汉字2个字节,最终的结果就是:锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。
烫烫烫乱码:
在windows平台下,ms的编译器(也就是vc带的那个)在 Debug 模式下,会把未初始化的栈内存全部填成 0xcc,用字符串来看就是"烫烫烫烫烫烫烫",未初始化的堆内存全部填成0xcd,字符串看就是“屯屯屯屯屯屯屯屯”。也就是说出现了烫烫烫,赶紧检查初始化吧。。。
--
FROM 222.68.18.*
3楼
|
ackerx
|
2020-12-22 17:21:21
|
展开
不会吧。。。
【 在 unicorn 的大作中提到: 】
: too old
:
--
FROM 222.68.18.*
6楼
|
ackerx
|
2020-12-22 17:38:57
|
展开
事情是很久了,只是原因今天才明白。
孤陋寡闻了。
【 在 iMx 的大作中提到: 】
: 20多年了吧
:
:
--
FROM 222.68.18.*
10楼
|
ackerx
|
2020-12-22 18:27:27
|
展开
微软的vs是这么干的。为什么是这样只有微软知道了。
【 在 lanmp 的大作中提到: 】
: 为啥初始化成这俩值?一般不都是ff或者0么?
--
FROM 222.68.18.*
11楼
|
ackerx
|
2020-12-22 18:28:14
|
展开
可这背后具体的原理懂的人应该不多吧。
【 在 Siegelion 的大作中提到: 】
: 在本站这是常识,我不是码农电脑玩多了也懂
--
FROM 222.68.18.*
17楼
|
ackerx
|
2020-12-23 09:30:59
|
展开
没有科学用网打不开啊。不过看来是用到程序断点防止程序从栈跑飞,但堆里的0xCD又是啥呢。
【 在 shallpi0n 的大作中提到: 】
:
https://en.wikipedia.org/wiki/INT_
(x86_instruction)#INT3
:
:
--
FROM 222.68.18.*
20楼
|
ackerx
|
2020-12-24 13:44:23
|
展开
事情是老事,但知道的人不多吧 =.=
【 在 midwest 的大作中提到: 】
: 挖几十年前的坟,可耻。
--
FROM 222.68.18.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版