2016-12-06 19 views
-2

had a problemUTF-8サポートされている文字(\ufffd)をテキストファイルに書き込みます。文字列データをファイルに書き込むための最も包括的な文字セットPython 3.xが何をサポートしているのだろうかと思っていました。Python 3.xがファイルI/Oをサポートする文字エンコードは?

Iは

valEncoded =ことによって問題を克服することができた(origVal.encode(エンコーディングは= 'ASCII'、エラーが=) '置き換える')。(デコード)

その基本的origValから非ASCII文字を除外しました。しかし、私はPythonファイルのI/OはASCIIよりもサポートしなければならないと考えています。これはかなり保守的です。だから私はサポートされている最も包括的なキャラクタセットが何であるかを探している。

+2

UTF-8を含むすべてのUTF- *エンコーディング。 –

+0

リンクに行くと、UTF-8文字をテキストファイルに印刷できないことがわかります – amphibient

+3

あなたの文字はUTF-8ではなく* Unicode *です。 UTF-8は、すべてのUnicode標準をエンコードするコーデックです。 UTF-8でファイルを開かず、デフォルトロケール(Windowsでは8ビットコードページ)を使用しました。 –

答えて

3

UTFエンコーディングのいずれかが動作するはず:

  • UTF-8は、典型的には、BOM(バイトを必要とすることなく、異なるエンディアンとシステムとの間、及びポータブル(テキストが大きくASCII互換性がある場合は特に)が最もコンパクトで注文マーク)。これは、Unicode全域(およびHTML、XML、JSONなどのネットワーク上でデータを扱うために使用される最も一般的なエンコーディング)をサポートするWindows以外のシステムで使用される最も一般的なエンコーディングです。
  • UTF-16は、
  • UTF-32は一般的ではなく、多くのディスクスペースを無駄にしますが、実際には文字とバイトの間の固定比率(ファイルサイズを分割することができますあなたはそれが別によって消費されるを知っない限り、一般的にはBOMを差し引いた後、4、あなたは文字の数を取得する)

によって、私はUTF-8と一緒に行くお勧めしますUTF-16などが必要なツールです。

+0

それは価値があります:GB18030はUFTです –

+0

@ JohnMachin:GB2312からの拡張がUnicode全体の範囲で包括的になったことはわかりませんでした。毎日何か新しいことを学ぶ。それは他のものとの間にいくつかの欠陥があるようです(UTF-8のような自己同期化ではありません)が、あなたのニーズに合っていれば実行可能なオプションだと思います。 – ShadowRanger

関連する問題