版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
直入正题,开始:
比如一个简单的繁体“絲”字,从网页中拷贝(Ctrl + C)下来,然后粘贴(Ctrl + V)到简单的文本文件中,
对于用户而言,这个字都是能被始终正常显示的。
背后发生的事情:
1. 首先了解“絲”字的编码
在GBK的编码系统中,该字的编码是 0xBD 0x7A
在UNICODE的编码系统中,该字的编码是 0x7D 0x72
参考UTF-8对Unicode编码的书写规则,该字的编码又被变化成了
1110 0111 1011 0101 1011 0010 即0xE7 0xB5 0xB2
2. 开始复制和粘贴
从UTF8编码的网页中拷贝这个字,实际上这个字已经从网页编码变成了操作系统内码(Windows中文系统应该就是GBK)
也就是从上述的Unicode的UTF8形式,转换成了GBK码
这样也就意味着,如果你是粘贴到系统的一个简单文本中,那么就是GBK的“絲”;
而粘贴并存储到一个UTF8的网页,那么就是UTF8的“絲”。
UTF8 Character Table list: