我正在尝试像这样打印 ASCII 艺术:
print(("""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""").encode('utf-8'))
输出看起来根本不正确。
打印ascii art的正确方法是什么?
encode
接受一个字符串并将其编码为字节。这不是你想要的;你想直接打印字符串:
print("""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""")
如果这不起作用,您的终端很可能未配置为显示 Unicode。不幸的是,我对终端配置不是特别了解; 为什么我的终端不能正确输出 unicode 字符? 可能相关,但我的帮助能力主要限于 Python 方面。
print(r"""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""")
r 可以让您更好地打印原始文本,尤其是当您尝试打印的图片中有很多引号时。
print(r"""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""")
print(r"""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""")
我得到“...编解码器无法在位置...编码字符 '\u0ca0'”
如果
print(giraffe)
由于字符编码不正确而失败,请尝试正确设置 PYTHONIOENCODING
环境变量,例如在 bash 中:
$ PYTHONIOENCODING=utf-8 python3 -c 'from text_art import giraffe as s; print(s)'
请勿使用
print(giraffe.encode('utf-8'))
:
print()
函数需要文本,而不是字节(不相关:要打印字节,您可以使用sys.stdout.buffer.write(some_bytes)
)PYTHONIOENCODING
允许您根据需要更改编码''.encode('utf-8')
__header__ = '''Content-Type: application/xml
\033[92m .---------------------------------.
\033[92m | .---------------------------. |
\033[92m |[]|\033[94m __ __ * \033[92m|[]|
\033[92m | |\033[94m / | / | / \033[92m| |
\033[92m | |\033[94m (___|(___|( \033[92m| |
\033[92m | |\033[94m | )| | \033[92m| |
\033[92m | |\033[94m | / | | \033[92m| |
\033[92m | |\033[94m / | |\033[92m| |
\033[92m | |\033[94m( ___ ___ ___| ___ ___|\033[92m| |
\033[92m | |\033[94m| | )| )| )|___)| )\033[92m| |
\033[92m | |\033[94m| |__/ |__/||__/ |__ |__/ \033[92m| |
..And more
然后
print(__header__)
print(r"""\
._ o o
\_`-)|_
,"" \
," ## | ಠ ಠ.
," ## ,-\__ `.
," / `--._;)
," ## /
," ## /
""")
这将以原始文本输入或打印此内容
在Python 3.12.0中
print(r""" """) 或 print(r''' ''') 打印 ASCII 艺术没有任何错误。
而 print(r"""\ """) 或 print(r'''\ ''') 打印反斜杠() 以及 ASCII 艺术。