2024-06-28 19:33:24 发布
网友
我有一个变量,它存储字符串"u05e2"(该值不断变化,因为我在一个循环中设置了它)。我想用Unicode值打印希伯来语字母。我尝试了以下方法,但没用:
"u05e2"
>>> a = 'u05e2' >>> print(u'\{}'.format(a))
我得到了\u05e2,而不是{}(在本例中)。在
\u05e2
我也尝试过:
两个都没用。我该怎么解决这个问题?在
提前谢谢!在
这是因为您必须在字符串之外添加后缀u。在
u
a = u'\u05e2' print(a) ע
希望这对你有帮助。在
您只需要在u05e2之前加一个\。要打印Unicode字符,必须提供Unicode格式字符串。在
u05e2
\
a = '\u05e2' print(u'{}'.format(a)) #Output ע
当您尝试另一种方法时,通过在print()函数中打印\,Python首先转义\,并且不显示所需的结果。在
print()
验证Unicode格式字符串有效性的一种方法是使用Python标准库中的ord()内置函数。这将返回传递给它的字符的Unicode码位(整数)。此函数只需要Unicode字符或表示Unicode字符的字符串。在
ord()
a = '\u05e2' print(ord(a)) #1506, the Unicode code point for the Unicode string stored in a
要打印上述Unicode代码值(1506)的Unicode字符,请使用带c的字符类型格式。这在Python docs中有解释。在
c
print('{0:c}'.format(1506)) #Output ע
如果我们向ord()传递一个普通的字符串文本,就会得到一个错误。这是因为此字符串不表示Unicode字符。在
a = 'u05e2' print(ord(a)) #Error TypeError: ord() expected a character, but string of length 5 found
这看起来像一个X-Y Problem。如果您希望代码点使用Unicode字符,请使用整型变量和函数chr(或Python 2上的unichr),而不是尝试格式化转义代码:
chr
unichr
>>> for a in range(0x5e0,0x5eb): ... print(hex(a),chr(a)) ... 0x5e0 נ 0x5e1 ס 0x5e2 ע 0x5e3 ף 0x5e4 פ 0x5e5 ץ 0x5e6 צ 0x5e7 ק 0x5e8 ר 0x5e9 ש 0x5ea ת
这是因为您必须在字符串之外添加后缀
u
。在希望这对你有帮助。在
您只需要在
u05e2
之前加一个\
。要打印Unicode字符,必须提供Unicode格式字符串。在当您尝试另一种方法时,通过在
^{pr2}$print()
函数中打印\
,Python首先转义\
,并且不显示所需的结果。在验证Unicode格式字符串有效性的一种方法是使用Python标准库中的
ord()
内置函数。这将返回传递给它的字符的Unicode码位(整数)。此函数只需要Unicode字符或表示Unicode字符的字符串。在要打印上述Unicode代码值(1506)的Unicode字符,请使用带
c
的字符类型格式。这在Python docs中有解释。在如果我们向
ord()
传递一个普通的字符串文本,就会得到一个错误。这是因为此字符串不表示Unicode字符。在这看起来像一个X-Y Problem。如果您希望代码点使用Unicode字符,请使用整型变量和函数
chr
(或Python 2上的unichr
),而不是尝试格式化转义代码:相关问题 更多 >
编程相关推荐