3 に答える
コメントと質問の更新から、データは UTF-8 で正しくエンコードされているようです。つまり、BOM を使用するか、HTML ドキュメントにエンコーディング情報を追加して、ブラウザーに UTF-8 であることを伝えるだけで済みます。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
ドキュメントが有効な XML でない場合は、XML 宣言を使用しないでください。
最善かつ最も信頼できる方法は、HTTP 経由でファイルを提供し、Content-Type:
ヘッダーを適切に設定することです。
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
。
Windows のほとんどのプログラムは、デフォルトの Windows エンコーディング (英語版のインストールでは ISO-8859-1) を使用していると想定します。これは、コマンド ウィンドウの出力にも当てはまります。残念ながら、デフォルトのエンコーディングを UTF-8 に設定する方法はありません。そのためのコード ページが定義されていますが、十分にサポートされていません。
一部のエディターは、ファイルの先頭にある BOM 文字を認識して UTF-8 に切り替えますが、それは保証されていません。
HTML を生成している場合は、適切なcharset
タグを含める必要があります。ブラウザはそれを適切に解釈します。