天天看點

python字元編碼與轉碼

python 2.x 字元編碼與轉碼

列印系統預設編碼格式

<code>import</code> <code>sys</code>

<code>print</code><code>(sys.getdefaultencoding())</code>

UTF-8 轉 gbk

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

<code>a </code><code>=</code> <code>"你好"</code>

<code>print</code> <code>a</code>

<code>utf8_to_unicode </code><code>=</code> <code>a.decode(</code><code>"utf-8"</code><code>)                 </code><code>#utf-8轉unicode</code>

<code>print</code> <code>utf8_to_unicode</code>

<code>unicode_to_gbk </code><code>=</code> <code>utf8_to_unicode.encode(</code><code>"gbk"</code><code>)      </code><code>#unicode轉utf-8</code>

<code>print</code> <code>unicode_to_gbk</code>

gbk 轉UTF-8

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

<code>gbk_to_unicode </code><code>=</code> <code>unicode_to_gbk.decode(</code><code>"gbk"</code><code>)       </code><code>#gbk轉unicode</code>

<code>print</code> <code>gbk_to_unicode</code>

<code>unicode_to_utf8 </code><code>=</code> <code>gbk_to_unicode.encode(</code><code>"utf-8"</code><code>)    </code><code>#unicode轉uft-8</code>

<code>print</code> <code>unicode_to_utf8</code>

總結:

    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 支援中文;

utf-8 轉 gbk

由于python3.0 預設unicode 支援中文,是以輸入中文,可以直接轉gbk ;

<code>print</code><code>(a)</code>

<code>unicode_to_gbk </code><code>=</code> <code>a.encode(</code><code>"gbk"</code><code>)    </code><code>#unicode 轉 gbk</code>

<code>print</code><code>(unicode_to_gbk)</code>

utf-8 轉 gbk      

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

<code>moren_to_utf8 </code><code>=</code> <code>a.encode(</code><code>"utf-8"</code><code>)                   </code>

<code>#等于moren_to_utf8 = a.encode()   因為系統編碼是utf-8</code>

<code>print</code><code>(</code><code>type</code><code>(moren_to_utf8.decode(</code><code>"utf-8"</code><code>)))          </code>

<code>#utf-8 格式 decode成unicode 就成了一個字元串;</code>

<code>utf8_to_unicdoe </code><code>=</code> <code>moren_to_utf8.decode(</code><code>"utf-8"</code><code>)</code>

<code>print</code><code>(utf8_to_unicdoe)</code>

<code>unicode_to_gbk </code><code>=</code> <code>utf8_to_unicdoe.encode(</code><code>"gbk"</code><code>)</code>

gbk 轉 utf-8

<code>gbk_to_unicode </code><code>=</code> <code>unicode_to_gbk.decode(</code><code>"gbk"</code><code>)       </code><code>#gbk 轉 unicode</code>

<code>print</code><code>(gbk_to_unicode)</code>

<code>unicode_to_utf8 </code><code>=</code> <code>gbk_to_unicode.encode(</code><code>"utf-8"</code><code>)    </code><code>#unicode 轉 utf-8</code>

<code>print</code><code>(unicode_to_utf8)</code>

    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