Pythonの基礎 - コーディング

コーデック

  • ASCII:1バイト、0-255
  • GBK2313:一般20,000以上、漢字を使用
  • GBK:2バイトの文字を表し、チベットを支援するためにGBK2313に補完
  • BIG5:台湾、伝統
  • Unicodeにコーディングするとき、2-4バイトは、メモリを除き、伝送または格納された:ユニコード
  • UTF:ユニコード変換フォーマット
  • UTF-8:可変長、1-4バイト、ASCII、2バイト文字に対応して、利点は、省スペースですが、時間の無駄
  • UTF-16:2つのバイト
  • UTF-32:4バイト

要するに:

  • Unicodeは、世界の各文字のインデックス値を定義します。
  • Unicodeエンコーディングは:世界中のすべての文字が含まれていますが、彼はただのメモリで使用するために使用します。ファイルやネットワーク伝送を格納するために必要ならば、デフォルトのコンピュータ・システムは、Unicodeをサポートしていません。

                                 ファイルを保存したりする必要がある場合、ネットワーク伝送:我々しなければならないバイト型(GBKまたはバイトUTF-8でエンコードされた文字列型)。                             

                                 私たちは、GBKまたはUTF-8を使うのか?

                                 処理のすべてがUTF-8であるため、あなたのアプリケーションがあり、その後、あなたのデータ転送は、UTF-8でなければならないだろう
  • UTF8 / UTF16 Unicode標準が実装され、文字が記憶媒体に格納されています。
 
 
PY3
  • PY3デフォルトのエンコード形式は、典型的には、3バイト、2バイト一般GBK、UTF-8でエンコードされた中国語UTF-8であります
  • PY3のデフォルトはファイルに保存されたstrの同様のタイプ(すなわちタイプユニコード)、あるタイプは、バイトのタイプです
                デフォルトのタイプは、送信(符号化された送信後に、もはやネットワーク上のSTR(ユニコード)----- >>>>ファイルに直接書き込みではない、ではありません必要があります
                >>>>ネットワーク透過型のバイト-------
                Webページのソースコード----- >>>>文字セット------- >>>>文字セット
符号のエンコード/デコード復号
ユニコード(文字列)で---->エンコード(符号化)によってスイッチ----->バイトのタイプ(UTF-8、ASCII、GBK
バイト型(UTF-8、ASCII、GBK)---->デコードによって(復号化 Unicodeで)----->スイッチ(STR)
 
 
 
PY2
  • デフォルトのタイプは、タイプPY2のSTR(すなわちバイトタイプ)であります 

Unicodeに変換し、デコード(復号化)---->タイプ(STR)によって---->入力バイト

ユニコードで---->エンコード(符号化)によって----->は、バイト型に変換され

 
 
要約:
エンコード:型が非Unicode文字列を与えるために使用されています
デコード:Unicodeのタイプは、取得するために使用されています
 
PY3列内部
 
>>> = S " A " 
>>>タイプ(S)  ユニコードSTR対応PY3タイプである 
< クラス ' STR ' >

>>> S1 = B'A「#1 PY3は、以前のバイトタイプBに添加します

>>>タイプ(S1)
<クラスが'バイト'>

S = >>> " 中国" 
>>> s.encode(" UTF-8 "#は、バイト符号化タイプに符号化された後に 
B ' \ XE4 \ XB8 \ XAD \ xe5 \ X9b \ XBD '   #1 バイトタイプはフロントを有しますB開始 
>>>タイプ(s.encode(" UTF-8 " ))
 < クラスは ' バイト' > 
>>> 
>>> s.encode(" GBK "#1 バイトにSTR型は、符号化ビットのタイプ符号化するために必要 
Bを' \ XD6 \ XD0 \ xb9 XFA \ ' 
>>> s.encode("GBK ").decode(" GBK"STR型のデコードする必要のどのタイプにバイトを
' 中国' 
タイプの>>>(s.encode(" GBK ").decode(" GBK " ))
 < クラス ' STR ' > 
>>> 

注:ファイルへの書き込みエンコード後に書かなければならないとき、



注意:どのように対応した復号をするかをエンコード、それ以外の場合はエラーや文字化けします
 
  

>>>( "GBK")GBKエンコーディングで#S = "開発グローリー・ロードテストトレーニング" .encode
>>> S
XE2 \ XB2 \ XB7 \ B「\ xb9 \ XE2 \ xc8 \ XD9 \ XD6 \ XAE XC2 \ \ XCA \ XD4 \ XBF \のXaa \ XB7 \ XA2 \ XC5 \ xe0 \ XD1 \ Xの
B5 "
>>> s.decodeデコードUTF-8で( "UTF-8")#
トレースバックを(最新のラストコール):
ファイル"<STDIN>"、1行目、<Module1を>インチ
UnicodeDecodeError 'UTF-8'コーデックが0xB9がデコードバイト位置0にすることはできません:無効なエラー# 'UTF-8'コーデックバイト位置0xB9をデコードすることはできません0:無効な
スタートバイト
>>>

 
  

>>> s.decode( "GBK")#GBKによって復号化
'グローリー・ロードテスト開発研修'
>>>

 

 

 
#の内部PY2列
 
>>> S = " ABC " 
>>>タイプ(S)   #1 PY2のSTR、種別に対応するバイト 
<タイプ' STR ' > 
>>> 
>>> s.decode(" GBK "py2strタイプは、最初のデコードencdoeことができない、 
U ABC   #は、ユニコードがデコードUの開始時に添加 
>>>タイプ(s.decode(GBK ))
 <タイプユニコード > 
>>> 印刷 S.デコード(" GBK "
ABC
 >>> 印刷s.decode(GBK ).encode(GBK 
ABC
 >>> 
注:PY2の状況を制御することはできません覚えていない場合のみPY3を覚えています

 

 
 
 

おすすめ

転載: www.cnblogs.com/wenm1128/p/11550804.html