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个字节,最终的结果就是:锟斤拷 哈哈。。。
Python代码:
Java代码
>>> u'\uFFFD'.encode('utf-8')*2
'\xef\xbf\xbd\xef\xbf\xbd'
>>>
>>> print u'\uFFFD'.encode('utf-8')*2
那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。
如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话
一个汉字2个字节,最终的结果就是:锟斤拷 哈哈。。。
Python代码:
Java代码
>>> u'\uFFFD'.encode('utf-8')*2
'\xef\xbf\xbd\xef\xbf\xbd'
>>>
>>> print u'\uFFFD'.encode('utf-8')*2