端末でウィンドウを描画するために古い DOS プログラムで使用されていたような、特殊な非 ASCII 文字をコンソールに表示したいと思います。ここに示すように、ウィンドウ/ダイアログ/テーブルのレンダリングに使用する文字を具体的に描画したい:
質問する
2753 次
2 に答える
3
curses
*nix システムの標準ライブラリの一部であるPython ライブラリを使用するか、コンソール インターフェイスを作成するための高レベル ライブラリであるUrwidを使用できます。
ドキュメントの定数の段落には、X エミュレーターで特殊文字を描画する方法に関する情報が含まれています (VT100 の継承機能をサポートしている場合)。エミュレータがそのような代替文字セットをサポートしていない場合は、ASCII 近似が使用されます。これがあなたが探しているものだと思います。
于 2012-08-11T08:12:21.057 に答える
3
コンソールに直接出力する方法は次のとおりですが、ライブラリのようなもののcurses
方が間違いなく簡単です。
コンソールがサポートしている文字を調べます。
import sys
print('encoding =',sys.stdout.encoding)
print(bytes(range(256)).decode(sys.stdout.encoding)
encoding = cp437 ☺☻♥♦ ♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂Çüéâäà åçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ² ■
次に、それらを Unicode 文字として印刷します。ソース ファイルは必ず UTF-8 (Python 3 のデフォルト) で保存するか、ソース ファイルで使用されるエンコーディングをコメントで宣言してください。UTF-8 は任意の文字を処理できますが、端末がサポートしていない文字を出力すると、3.6 より前の Python で が取得されます。#coding: encoding
UnicodeEncodeError
print('╔═╦═╗╓─╥─╖╒═╤═╕┌─┬─┐')
print('║ ║ ║║ ║ ║│ │ ││ │ │')
print('╠═╬═╣╟─╫─╢╞═╪═╡├─┼─┤')
print('║ ║ ║║ ║ ║│ │ ││ │ │')
print('╚═╩═╝╙─╨─╜╘═╧═╛└─┴─┘')
╔═╦═╗╓─╥─╖╒═╤═╕┌─┬─┐ ║ ║ ║║ ║ ║│ │ ││ │ │ ╠═╬═╣╟─╫─╢╞═╪═╡├─┼─┤ ║ ║ ║║ ║ ║│ │ ││ │ │ ╚═╩═╝╙─╨─╜╘═╧═╛└─┴─┘
于 2012-08-12T16:42:38.603 に答える