この記事では、Python 学習における文字エンコーディングと文字列について簡単に説明します。一定の参考値があるので、困っている友人は参考にしていただければ幸いです。
文字エンコーディングとは何ですか?
#たとえば、漢字 "中" は、次の ## で表すことができます。
# 10 進数:20013
2 進数:01001110 00101101(unicode)/11100100 10111000 10101101(utf-8)
16 進数:u4e2d
ascii エンコード
1 バイト
##スペースを節約
#unicode エンコード
Unicode エンコードは通常、
バイトです。 (たとえば、ASCII でエンコードされた文字 A は、10 進数 65、2 進数 01000001 です。A の Unicode エンコードは 00000000 01000001 です。) ##uicodeエンコードを統一してエンコードの競合を解決すると、コード化けの問題は解消されます。
には ascii
の 2 倍のストレージ容量があり、ストレージと送信のコスト効率が高くありません ()utf-8 エンコード (可変長 Unicode エンコード)
UTF- 8文字をさまざまな数値サイズと一般的に使用される英語に従って
1-6バイトにエンコードします。文字は 1 バイトにエンコードされます。中国語の文字は通常 3 バイトです。非常にまれな文字のみが # にエンコードされます。 ##4 -6 バイト。 #文字ASCIIUnicode
UTF-8A | 01000001 | 00000000 01000001 | 01000001 | |||||||
中 | xx | #01001110 00101101 | 11100100 10111000 10101101 | |||||||
1) 送信するテキストに多数の英語の文字が含まれている場合は、UTF-8 でエンコードするとスペースを節約できます。 2) ASCII エンコーディングは、実際には エンコーディングの一部と見なすことができるため、多くのエンコーディングは ASCII のみをサポートしています。 エンコード: 従来のソフトウェアは UTF-8 エンコードでも引き続き動作します。 コンピュータ システムの一般的な文字エンコード作業方法: メモリ: 統一されたunicode Encodingハードディスク、送信: utf-8 に変換 Web を閲覧すると、サーバーは動的に生成された Unicode コンテンツを # に変換します。##UTF-8 そしてブラウザに送信します。 #Python 文字列 関連関数 #ord()Function
Stringascii を使用した中国語エンコードではエラーが報告されます decode()Functionネットワークまたはディスクから読み取った bytes
間違ったバイトを無視します。 ##> >> b'\xe4\xb8\xad\xff'.decode('utf-8',errors='ignore') '中' # #len( )Function, 文字列に含まれる文字数を計算
の文字列は複数の言語をサポートします Python の文字列型は str,です。ネットワークに保存するか、ディスク上に保存する必要があります。str を bytes に変更する必要があります。 >>文字化けを避けるために、 str## には常に UTF-8 エンコーディングを使用するようにしてください。 bytes変換 <<str と bytes の違い 1) str 1 文字は数バイト 、 に対応しますが、bytes の各文字は 1 バイトしか占有しません。 (マルチバイト文字をシングルバイトのマルチ文字に分解します) 在bytes, バイトASCII として表示できない文字は \x## で表示されます。 の文字は接頭辞と引用符で囲まれます Linux に伝えるものです/OS X システム、これは Python 実行可能プログラムです。Windows システムはこのコメントを無視します; コメントの 2 行目は、 インタプリタに UTF-8 エンコードに従ってソース コードを読み取るように指示し、それ以外の場合は、中国語です。ソースコードに記述した出力が文字化けする可能性があります。 #>>エディタは BOM なしの UTF-8 を使用します<< #文字列の書式設定 問題##>>> 'Hello, %s' % 'world' 'Hello, world' >> ;> ; 'やあ、%s、あなたは $%d を持っています。' % ('Michael', 1000000) 'こんにちは、マイケル、あなたは $1000000 を持っています。'% # は文字列のフォーマットに使用されます。文字列内には複数の が 1 つだけの場合は、括弧を省略できます。 エスケープします。 > を表します。 >> '成長率: %d %%' % 7 '成長率: 7 %' #プレースホルダー 文字列をフォーマットするもう 1 つの方法は、文字列の format() メソッドを使用することです。このメソッドは、渡されたパラメータを使用してプレースホルダーを置き換えます , {1}... を文字列に順番に記述しますが、この書き方は % よりも簡単です: >>> 'こんにちは、{0}、スコアは {1:.1f}% 向上しました'.format('Xiao Ming', 17.125) ' こんにちは、Xiao Ming、あなたのスコアは 17.1% 向上しました' |
以上がPython学習における文字エンコーディングと文字列についての簡単な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。