为什么手机显示出来的是烫烫烫

为什么手机显示出来的是烫烫烫,第1张

因为手持两把锟斤拷,口中疾呼烫烫烫。

锟斤拷,是一串经常在搜索引擎页面和其他网站上看到的乱码字符。乱码源于GBK字符集和Unicode字符集之间的转换问题。

Unicode是一直在更新的,在这个过程中,肯定有一些比较新的字符他是无法表示的。或者即使Unicode发布了新版纳入了某个文字,但是很多软件系统并未升级也会有这样的问题。

就像生活中一些手机厂商新出的那些emoji表情,在自己的手机上可以正常显示,发到其他品牌的手机上可能就无法显示。这其实也是字符集不支持导致的。

发生以上情况时,无法显示的时候也需要有一个字符来表示的,在Unicode中,这个字符就是 ,他也是Unicode中定义的一个特殊字符。也就是"0xFFFD REPLACEMENT CHARACTER",所有无法表示的字符都会通过这个字符来表示。

我们上网的时候不用去关心网站采用了什么编码格式,但是页面中不时出现的乱码还是会让我们头疼。

在这点上,Firefox的用户更是深有体会,用Firefox浏览网页看到乱码的机会要比Internet Explorer多得多。 乱码主要与字符编码系统有关。例如一个网页中常出现的乱码“锟斤拷”,它就是新老编码系统转换中出现的。

在Visual Studio中的Debug模式下,如果声明一个变量,但是没有初始化,微软会给未初始化的内存复制为0xCC。给为初始化的内存赋0xCC是有原因的,0xCC其实是INT3中断指令,所以如果在Debug模式下试图去执行这块未初始化的内存的话就会中断程序。

但VS中调试器默认的字符集是MBCS,而在MBCS中0xCCCC正好就是中文中的“烫”,所以显示出来就都是烫。

如果是用分配堆的内存,会初始化成0xCD,0xCDCD在MBCS字符集中就是屯。

锟斤拷则涉及unicode的字符集转换问题,Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的。

Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER。U+FFFD的UTF-8编码是0xEFBFBD,如果重复多次形成:EFBFBDEFBFBDEFBFBD 。

在GBK/CP936/GB2312/GB18030的环境中显示的话,一个汉字2个字节,最终的结果就是:锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。

m=0;

min=arr[m];

max=arr[m];

j=0;i=0;<=====这里插入一句代码试试

for(m=0;m<n;m++)

{

lz看到的输入应该是

第一行是正确的

第二行才会有烫烫出现

因为a,b在接受输入时会自动的添加'\0'

而c没有使用'\0'结尾这样系统就会一直打印到'\0'为止

那些烫烫烫就是c后面的内存数据(0xDE)

lz需要让c最后以'\0'结尾就ok了

lz定义c的时候是5个字节而c最多需要接受9(a里的4个,b的4个,'\0'结尾)个字节,这样有产

生数据越界的危险

以上就是关于为什么手机显示出来的是烫烫烫全部的内容,包括:为什么手机显示出来的是烫烫烫、vc6运行C语言程序出现“烫烫烫”的原因还有解决办法、我的程序运行后怎么会有“烫烫”的东西啊求解。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9525114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存