经典乱码“烫烫烫”和“屯屯屯”
2016-07-28 17:02
295 查看
程序猿有个经典的内部笑话:手持两把锟斤拷,口中疾呼烫烫烫。
写过代码的人都碰到过。最近从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,按照两个字节一个字显示成汉字,就成了锟斤拷这三个字。
写过代码的人都碰到过。最近从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,按照两个字节一个字显示成汉字,就成了锟斤拷这三个字。
相关文章推荐
- [置顶] Spring cache +redis
- ROS by Example 第2卷 -- 概括
- nginx+php-fpm出现502 bad gateway错误解决方法__转发
- Leetcode题集——maximum-subarray
- js基础
- 1.安卓开发环境搭建
- UITableView-编辑模式(多选移动删除)
- 156 - Ananagrams
- 告别外卖“黑作坊”,零成本打造千万并发后厨直播
- StringBuilder&& StringBuffer
- 如何避免误用分布式事务(System.Transactions.TransactionScope)
- 扩展欧几里得--让你一次刷个够
- 【HEVC帧间预测论文】P1.5 Fast Coding Unit Size Selection for HEVC based on Bayesian Decision Rule
- composer安装,速度慢
- MongoDB系列二:安装mongoDB C/C++驱动(New C++11 driver)
- 黑白棋游戏
- Android service基础绑定一点通(绑定方法说明)
- HTTP状态码详解
- C语言函数sscanf()的用法
- ls 只显示隐藏文件 或 只显示指定目录内目录文件