python 2.x 字符编码与转码
打印系统默认编码格式
1
2
|
import
sys
print
(sys.getdefaultencoding())
|
UTF-8 转 gbk
方式:utf-8--转成--unicode--转成--gbk
1
2
3
4
5
6
|
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
1
2
3
4
|
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 支持中文;
打印系统默认编码格式
1
2
|
import
sys
print
(sys.getdefaultencoding())
|
utf-8 转 gbk
由于python3.0 默认unicode 支持中文,所以输入中文,可以直接转gbk ;
1
2
3
4
|
a
=
"你好"
print
(a)
unicode_to_gbk
=
a.encode(
"gbk"
)
#unicode 转 gbk
print
(unicode_to_gbk)
|
utf-8 转 gbk
这里编码转化顺序:unicode--转成--utf-8--转成--unicode--转成--gbk;和上边一样的结果。
1
2
3
4
5
6
7
8
9
10
|
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
1
2
3
4
|
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 51CTO博客,原文链接:http://blog.51cto.com/506554897/1945838