1. 程式人生 > >python字符編碼與轉碼

python字符編碼與轉碼

python字符編碼與轉碼 python2.x字符編碼與轉碼 python3.x字符編碼與轉碼

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‘\xc4\xe3\xba\xc3‘ ;

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‘\xc4\xe3\xba\xc3‘ ;

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


本文出自 “506554897” 博客,請務必保留此出處http://506554897.blog.51cto.com/2823970/1945838

python字符編碼與轉碼