我想在控制台上渲染特殊的非 ASCII 字符,就像旧 DOS 程序中用于在终端中绘制窗口的字符一样。我特别想绘制他们在渲染窗口/对话框/表格时使用的字符,如下所示:
问问题
2753 次
2 回答
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 回答