Python 3.3のプログラムに使用したい♥や❦のような特別な記号をたくさん見つけました。プログラムはIDLEで問題なく動作しますが、コマンドラインを使用して実行するとすぐにクラッシュし、文字が認識されないことに関するエラー:
Traceback (most recent call last):
File "C:python33\meh.py", line 1, in <module>
print("\u2665")
File "C:\python33\lib\encodings\cp437.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character 'u\u2665' in position 0: character maps to <undefined>
コマンドラインに表示できるように、これらのシンボルをmap
他の場所に移動するにはどうすればよいでしょうか。<undefined>
Pythonのcp437.pyに追加してみることができると思いますが(エラーからそれを計算しました)、各シンボルの16進数/ 10進数/その他を取得する方法と、それを配置する場所がわかりません。
CEDILLAを使用したラテン大文字Cの例:
-マップキーと値のデコード: 0x0080: 0x00c7, # LATIN CAPITAL LETTER C WITH CEDILLA
--デコードテーブル文字列: '\xc7' # 0x0080 -> LATIN CAPITAL LETTER C WITH CEDILLA
-マップキーと値のエンコード: 0x00c7: 0x0080, # LATIN CAPITAL LETTER C WITH CEDILLA
すべてのシンボルに3つすべてが必要かどうかはわかりません(それぞれが何をするかは言うまでもありません)。デコードマップとテーブルを備えているものもあれば、代わりにデコードテーブルとエンコーディングマップを備えているものもあります。