如何使用 python 显示非 ASCII 字符

how to show non ASCII character using python

我想在没有打印功能的控制台(不是 unicode 格式)中看到原始值(非英语语言)。但是如果我使用没有打印功能的代码然后显示匿名值(在 unicode 中)。我正在使用龙卷风框架

gs.translate('this is a pen','bn')

生成 Unicode 字符串。如果您只是在交互式解释器中键入 gs.translate('this is a pen','bn'),它会打印该字符串的 representation,即

u'\u098f\u0987 \u098f\u0995\u099f\u09bf \u0995\u09b2\u09ae'

但是当您键入 print(gs.translate('this is a pen','bn')) 时,Unicode 数据会使用默认编码(似乎是 utf-8)编码成字节流,因此可以打印数据。

您可以显式执行该编码:

uni = u'\u098f\u0987 \u098f\u0995\u099f\u09bf \u0995\u09b2\u09ae'
s = uni.encode('utf-8')
print(s)

输出

এই একটি কলম

注意s的表示是如下字节串:

'\xe0\xa6\x8f\xe0\xa6\x87 \xe0\xa6\x8f\xe0\xa6\x95\xe0\xa6\x9f\xe0\xa6\xbf \xe0\xa6\x95\xe0\xa6\xb2\xe0\xa6\xae'

因此,如果您在提示符下键入 s,那么这就是交互式解释器中将打印的内容。

您不能让解释器打印 এই একটি কলম 只需键入一个变量名或简单的表达式,因为它 总是 显示变量的表示或表达。因此,如果您想在交互式解释器中看到实际的孟加拉语 (?) 文本,您需要使用 print(或 sys.stdout.write)告诉它打印 UTF-8 编码数据。

另一种选择是使用 Python 3:

Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> u'\u098f\u0987 \u098f\u0995\u099f\u09bf \u0995\u09b2\u09ae'
'এই একটি কলম'