質問

私のテキスト エディタでは、Ansi、UTF-8、UTF-8(BOM なし)、UTF-16LE、UTF-16BE など、いくつかの異なる文字形式でコーディングできます。

それらの違いは何ですか?

一般に最良の形式と考えられているのは何ですか (違いがある場合は、私は Python を使用しています)。

役に立ちましたか?

解決

  • 「Ansi」は誤った名称であり、通常は、現在のプラットフォーム (通常は「西側」 Windows インストール) のデフォルトである 8 ビット エンコーディングを指します。 Windows-1252)。少数の文字セット (最大 256 個の異なる文字) のみをサポートします。
  • UTF-8 は、あらゆる Unicode 文字を格納できる可変長の ASCII 互換エンコーディングです。これは、すべての Unicode 文字をサポートする必要がある西洋のテキストにとっては非常に良い選択肢であり、一般的なケースでは非常に実行可能な選択肢です。
  • 「UTF-8 (BOM なし)」は、Windows が、 バイトオーダーマーカー. 。BOM があるため、 必要ありません UTF-8 の場合、これは使用すべきではなく、これが正しい選択です (他のほとんどの人は、このバージョンを単に「UTF-8」と呼んでいます)。
  • UTF-16LE と UTF-16BE は リトルエンディアンとビッグエンディアン のバージョン UTF-16 エンコーディング。UTF-16 は UTF-8 と同様、任意の Unicode 文字を表すことができますが、ASCII 互換ではありません。

一般に、UTF-8 は全体的に優れた選択肢であり、幅広い互換性があります (ただし、BOM は書き込まないように注意してください。他のほとんどのソフトウェアでは BOM が期待されているためです)。

テキストの大部分が非 ASCII 文字で構成されている場合 (例:基本的なラテン文字は使用しません)。

「Ansi」は、Unicode をサポートしていない従来のアプリケーションと対話する必要がある場合にのみ使用してください。

エンコーディングに関して重要なことは、エンコーディングはデータに加えて通信する必要があるメタデータであるということです。これは、あなたが 知っている必要があります バイトストリームをテキストとして正しく解釈するためのエンコード。それで、あなたはすべきです どちらか 実際に使用されるエンコーディングを文書化した形式を使用します (ここでは XML が主な例です)。 または 特定のコンテキストで単一のエンコーディングを標準化し、それのみを使用します。

たとえば、ソフトウェア プロジェクトを開始する場合、すべてのソース コードが特定のエンコーディングであることを指定できます (繰り返します:UTF-8) を推奨し、それをそのまま使用します。

特に Python ファイルの場合は、次のとおりです。 ソースファイルのエンコーディングを指定する方法.

scroll top