python字符串的encode與decode

#綜述:python中字符串分爲字節字符和非字節字符 ##python3     python3中默認輸入字符串以非字節字符編碼,使用unicode字符集表示,能夠使用encode方法轉化爲ascii,utf-8, utf-16等各類編碼形式的字節字符;所以僅非字節字符才被python3認爲是標準字符串python

Python 3.5.2 (default, Nov 23 2017, 16:37:01)
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> uni_str = 'abc'
    >>> type(uni_str)
    <class 'str'>
    >>> utf8_str = uni_str.encode('utf-8')
    >>> type(utf8_str)
    <class 'bytes'>
    >>> asc_str = uni_str.encode('utf-8')
    >>> type(asc_str)
    <class 'bytes'>
    >>> uni_str
    'abc'
    >>> utf8_str
    b'abc'
    >>> asc
    asc_str  ascii(   
    >>> asc_str
    b'abc'

##python2     python2中輸入字符串默認使用ascii編碼的字節字符,所以默認不支持中文(存疑),能夠使用decode方法將默認字節編碼的字符串轉化爲非字節字符,使用unicode字符集表示,進而使用encode方法將unicode字符集的非字節字符轉化爲其餘編碼形式的字符如utf-8, utf-16;所以編碼後字符串,即字節字符才被python2認爲是字符串格式linux

Python 2.7.12 (default, Dec  4 2017, 14:50:18)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> str = 'abc'
    >>> type(str)
    <type 'str'>
    >>> uni_str = str.decode('ascii')
    >>> uni_str
    u'abc'
    >>> type(uni_str)
    <type 'unicode'>
    >>> utf8_str = uni_str.encode('utf-8')
    >>> utf8_str
    'abc'
    >>> type(utf8_str)
    <type 'str'>
相關文章
相關標籤/搜索