2

端末でウィンドウを描画するために古い DOS プログラムで使用されていたような、特殊な非 ASCII 文字をコンソールに表示したいと思います。ここに示すように、ウィンドウ/ダイアログ/テーブルのレンダリングに使用する文字を具体的に描画したい:

ノートン コマンダーの DOS メニュー

4

2 に答える 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: encodingUnicodeEncodeError

print('╔═╦═╗╓─╥─╖╒═╤═╕┌─┬─┐')
print('║ ║ ║║ ║ ║│ │ ││ │ │')
print('╠═╬═╣╟─╫─╢╞═╪═╡├─┼─┤')
print('║ ║ ║║ ║ ║│ │ ││ │ │')
print('╚═╩═╝╙─╨─╜╘═╧═╛└─┴─┘')
╔═╦═╗╓─╥─╖╒═╤═╕┌─┬─┐
║ ║ ║║ ║ ║│ │ ││ │ │
╠═╬═╣╟─╫─╢╞═╪═╡├─┼─┤
║ ║ ║║ ║ ║│ │ ││ │ │
╚═╩═╝╙─╨─╜╘═╧═╛└─┴─┘
于 2012-08-12T16:42:38.603 に答える