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