UNICODE字符串可以與任意字符編碼的字節進行相互轉換,如圖:
那么大家很容易想到一個問題,就是不同的字符編碼的字節可以通過Unicode相互轉換嗎?答案是肯定的。
Python2中的字符串進行字符編碼轉換過程是:
字節串-->decode('原來的字符編碼')-->Unicode字符串-->encode('新的字符編碼')-->字節串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
utf_8_a = '我愛中國'
gbk_a = utf_8_a.decode('utf-8').encode('gbk')
print(gbk_a.decode('gbk'))
輸出結果:
我愛中國
Python3中定義的字符串默認就是unicode,因此不需要先解碼,可以直接編碼成新的字符編碼:
字符串-->encode('新的字符編碼')-->字節串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
utf_8_a = '我愛中國'
gbk_a = utf_8_a.encode('gbk')
print(gbk_a.decode('gbk'))
輸出結果:
我愛中國
最后需要說明的是,Unicode不是有道詞典,也不是google翻譯器,它并不能把一個中文翻譯成一個英文。正確的字符編碼的轉換過程只是把同一個字符的字節表現形式改變了,而字符本身的符號是不應該發生變化的,因此并不是所有的字符編碼之間的轉換都是有意義的。怎么理解這句話呢?比如GBK編碼的“中國”轉成UTF-8字符編碼后,僅僅是由4個字節變成了6個字節來表示,但其字符表現形式還應該是“中國”,而不應該變成“你好”或者“China”。
-
編碼
+關注
關注
6文章
940瀏覽量
54814 -
字符
+關注
關注
0文章
233瀏覽量
25199 -
python
+關注
關注
56文章
4792瀏覽量
84628
發布評論請先 登錄
相關推薦
評論