我希望在没有打印功能的控制台(不是unicode格式)中看到原始值(使用英语以外的语言)。但是如果我使用没有打印功能的代码然后显示匿名值(在unicode中)。我正在使用龙卷风框架
答案 0 :(得分:2)
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编码数据。
答案 1 :(得分:0)
另一种选择是使用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'
'এই একটি কলম'