简要介绍一下UTF-8编码和GBK编码------并利用linux中的iconv命令来实现UTF-8和GBK之间的相互转换

时间:2022-04-06 03:14:22

       曾经的某个版本一发布, 外网一片乱码简要介绍一下UTF-8编码和GBK编码------并利用linux中的iconv命令来实现UTF-8和GBK之间的相互转换, 虽然最后影响不是很大, 但至今仍然记忆犹新, 这就是我们今天要说的UTF-8编码和GBK编码, 不容忽视哦!


       在涉及编码格式时, 强烈建议使用UTF-8, 更具有普遍性和通用性。 对于一个汉字而言, UTF-8是三个字节, 而GBK是两个字节。

       我们来看看UTF-8编码, “我”的16进制是:E68891 (从UltraEdit中可看), 我们从在线工具上查查:http://www.mytju.com/classcode/tools/encode_utf8.asp

       简要介绍一下UTF-8编码和GBK编码------并利用linux中的iconv命令来实现UTF-8和GBK之间的相互转换

       可以看到编码的16进制是E68891,  与ultraEdit中看到的是一致。 


       奇怪了, 6211是什么呢? 阮一峰老师之前讲的, UTF-8是unicode的一种实现, 这下明白了吧。 “我”的unicode编码是6211,  而unicode编码又有多种实现, UTF-8就是其中一种实现, “我”的UTF-8编码为E68891 

       这样就清楚多了。


        那GBK呢? 它是另一套编码系统, 和UTF-8没有毛关系, 但可以相互转换。 我们来看看:

简要介绍一下UTF-8编码和GBK编码------并利用linux中的iconv命令来实现UTF-8和GBK之间的相互转换

       

        最后再来看一个问题, notepad++和UltraEdit都能实现gbk和UTF-8间的转换, 那么在linux下怎么玩呢?   我们看下a.txt文件(UTF-8),其中有“我”:

taoge@localhost Desktop> xxd a.txt
0000000: e688 91 ...
taoge@localhost Desktop> iconv -f utf-8 -t gbk a.txt > b.txt
taoge@localhost Desktop> xxd b.txt
0000000: ced2 ..
taoge@localhost Desktop> iconv -f gbk -t utf-8 b.txt > c.txt
taoge@localhost Desktop> xxd c.txt
0000000: e688 91 ...
taoge@localhost Desktop>
       

       至此, 应该恍然大悟了吧!