python字元編碼與轉碼

  • 2020 年 1 月 13 日
  • 筆記

python 2.x 字元編碼與轉碼

列印系統默認編碼格式

import sys  print(sys.getdefaultencoding())

UTF-8 轉 gbk

方式:utf-8–轉成–unicode–轉成–gbk

a = "你好"  print a  utf8_to_unicode = a.decode("utf-8")                 #utf-8轉unicode  print utf8_to_unicode  unicode_to_gbk = utf8_to_unicode.encode("gbk")      #unicode轉utf-8  print unicode_to_gbk

gbk 轉UTF-8

方式:gbk–轉成–unicode–轉成–utf-8

gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk轉unicode  print gbk_to_unicode  unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode轉uft-8  print unicode_to_utf8

總結:

    1.python2.X 默認編碼是ascii ;支援中文需要加「 #-*- coding:utf-8 」;

    2.gbk、utf-8之間的轉碼必須先轉碼成unicode ;

python 3.x 字元編碼與轉碼

字元編碼與轉碼

UTF-8 可變長編碼格式

python3.x 在轉碼的時候,同時把字元變成一個bytes類型;例如:b'xc4xe3xbaxc3' ;

python3.X 默認的編碼是unicode 支援中文;

列印系統默認編碼格式

import sys  print(sys.getdefaultencoding())

utf-8 轉 gbk

由於python3.0 默認unicode 支援中文,所以輸入中文,可以直接轉gbk ;

a = "你好"  print(a)  unicode_to_gbk = a.encode("gbk")    #unicode 轉 gbk  print(unicode_to_gbk)

utf-8 轉 gbk

這裡編碼轉化順序:unicode–轉成–utf-8–轉成–unicode–轉成–gbk;和上邊一樣的結果。

a = "你好"  print(a)  moren_to_utf8 = a.encode("utf-8")                     #等於moren_to_utf8 = a.encode()   因為系統編碼是utf-8  print(type(moren_to_utf8.decode("utf-8")))            #utf-8 格式 decode成unicode 就成了一個字元串;  utf8_to_unicdoe = moren_to_utf8.decode("utf-8")  print(utf8_to_unicdoe)  unicode_to_gbk = utf8_to_unicdoe.encode("gbk")  print(unicode_to_gbk)

gbk 轉 utf-8

gbk_to_unicode = unicode_to_gbk.decode("gbk")       #gbk 轉 unicode  print(gbk_to_unicode)  unicode_to_utf8 = gbk_to_unicode.encode("utf-8")    #unicode 轉 utf-8  print(unicode_to_utf8)

總結:

    1.python3.x 默認編碼是unicode,支援中文;

    2.python3.x 在轉碼的時候,同時把字元變成一個bytes類型;例如:b'xc4xe3xbaxc3' ;

    3.python3.x 轉碼成了bytes類型之後,想顯示成中文decode成unicode 就成了一個字元串;