0

今日はpython PEP100を読みました。「Unicode デフォルト エンコーディング」の部分で、「Unicode 実装は、強制のために渡される 8 ビット文字列のエンコーディングについて、および Unicode を文字列に変換するためのデフォルトとしてのエンコーディングについて、いくつかの仮定を行う必要がある」と言及しています。特定のエンコーディングが与えられます。

私の質問は、「8 ビット文字列」とはどういう意味ですか? アスキーのことですか?

4

2 に答える 2

4

いいえ、ASCIIは 7 ビットのエンコーディングです。ほとんどのテキスト エンコーディング (UTF-8 および ISO-8859 を含む) は 8 ビット エンコーディングです。

一般的に言えば、基本的な ASCII 文字セットを超えるものは、エンコードに 7 ビット以上を必要とします。そのため、国際データを扱うときは、通常、エンコードされた文字ごとに複数のバイトを使用できるエンコーディングを扱います。Unicode とバイト文字列の型を組み合わせようとすると、Python は自動的にバイト文字列を Unicode にデコードしようとします。デフォルトのエンコーディング (Python 2 では) は ASCII です。これは、Python で頻繁に発生する UnicodeDecodeError 例外の原因です。

ただし、先に進む前に、Unicode とテキスト エンコーディングについて十分に理解しておく必要があります。私はお勧めできます:

于 2012-10-09T09:26:53.467 に答える
2

UTF-8広範囲の文字をサポートするために使用されます。UTF-8では、最大4バイトを使用して1文字を表すことができます。

ASCII128文字のみを定義します。だから7ビットだけ。ただし、通常は8ビット/文字で格納されます。RS232(旧シリアル通信)は7ビットのバイトで使用できます

于 2012-10-09T09:24:53.913 に答える