1

コマンド プロンプト ターミナルに一連の Unicode 文字を出力したいと考えています。エンコーディングを「UTF-8」に強制しても、端末はゴミを出力します。

$python -c "import sys; print sys.stdout.write(u'\u2044'.encode('UTF-8'))"
ΓüäNone

$python -c "import sys; print sys.stdout.encoding"
cp437

私のデフォルトの端末エンコーディングは cp437 で、それをオーバーライドしようとしています。ここで期待される出力は、分数スラッシュ ( ⁄ ) です。

http://www.fileformat.info/info/unicode/char/2044/index.htm

同じコードが私の Mac 端末で問題なく動作し、デフォルトのエンコーディングとして UTF-8 を使用しています。これをWindowsでも表示する方法はありますか?Windows コマンド プロンプトで使用するフォントは consolas です。

入力は Web クエリの結果であり、それを制御できないため、この特定の例だけでなく、コードを任意の Unicode 文字で動作させたいと考えています。

4

2 に答える 2

6

Python は端末で使用されるエンコーディングを制御できません。他の場所でそれを変更する必要があります。

つまり、Python に UTF-8 でエンコードされたテキストを端末に出力するように強制したからといって、端末が魔法のようにその出力を UTF-8 としても受け入れ始めるわけではありません。

Mac OS X 端末は、すでに UTF-8 で動作するように構成されています。

chcpWindows では、次のコマンドでコンソールのコードページを切り替えることができます。

chcp 65001

ここで、65001 は UTF-8 の Windows コードページです。Windows コマンド ラインで Unicode 文字を参照してください - どのように?

于 2012-09-08T11:50:51.507 に答える