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个字节,最终的结果就是:锟斤拷 我们上网的时候不用去关心网站采用了什么编码格式,但是页面中不时出现的乱码还是会让我们头疼。在这点上,Firefox的用户更是深有体会,用Firefox浏览网页看到乱码的机会要比IE多得多。 乱码主要与字符编码系统有关。例如一个网页中常出现的乱码“锟斤拷”(百度,Google),它就是新老编码系统转换中出现的。网友est专门写了一篇文章来考证问题来源: 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的环境中显示的话就是“锟斤拷——锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)”。
|