16
4

3 に答える 3

8

コメントと質問の更新から、データは UTF-8 で正しくエンコードされているようです。つまり、BOM を使用するか、HTML ドキュメントにエンコーディング情報を追加して、ブラウザーに UTF-8 であることを伝えるだけで済みます。

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

ドキュメントが有効な XML でない場合は、XML 宣言を使用しないでください。

最善かつ最も信頼できる方法は、HTTP 経由でファイルを提供し、Content-Type:ヘッダーを適切に設定することです。

于 2012-01-06T17:15:31.847 に答える
5

Windows で Python プログラムを出力ファイルにパイプするとき、常にこの文字セットを使用しますか?

パイプへの出力に使用されるデフォルトのエンコーディング。私のマシンで:

In [5]: sys.getdefaultencoding()
Out[5]: 'ascii'

そうでない場合、回避策はありますか?

import sys
try:
    sys.setappdefaultencoding('utf-8')
except:
    sys = reload(sys)
    sys.setdefaultencoding('utf-8')

現在、すべての出力は「utf-8」にエンコードされています。

せずにこの状況を処理する正しい方法だと思います

一連のロジックをやり直す

インターネット ソースのすべてのデータをサーバーまたはページ エンコーディングから にデコードしunicode、上記の回避策を使用してデフォルト エンコーディングを に設定しますutf-8

于 2012-01-06T17:01:33.520 に答える
2

Windows のほとんどのプログラムは、デフォルトの Windows エンコーディング (英語版のインストールでは ISO-8859-1) を使用していると想定します。これは、コマンド ウィンドウの出力にも当てはまります。残念ながら、デフォルトのエンコーディングを UTF-8 に設定する方法はありません。そのためのコード ページが定義されていますが、十分にサポートされていません。

一部のエディターは、ファイルの先頭にある BOM 文字を認識して UTF-8 に切り替えますが、それは保証されていません。

HTML を生成している場合は、適切なcharsetタグを含める必要があります。ブラウザはそれを適切に解釈します。

于 2012-01-06T17:10:53.420 に答える