无法在unicode中打印某些上标

时间:2016-02-26 01:02:27

标签: python unicode

使用此页面 How to find the unicode of the subscript alphabet? 我可以打印除j,l,r,w,y,s和h之外的所有上标。 Unicode显然已为这些上标编码,但由于某种原因,它不适用于Python。所以对于其他上标我只写:

ua = u"\u1d43"
ub = u"\u1d47"
uc = u"\u1d9c"
ud = u"\u1d48"
ue = u"\u1d49"
uf = u"\u1da0"
ug = u"\u1d4d"
ui = u"\u2071"
uk = u"\u1d4f"
um = u"\u1d50"
un = u"\u207f"
uo = u"\u1d52"
up = u"\u1d56"
ut = u"\u1d57"
uv = u"\u1d5b"
uu = u"\u1d58"

但是当我为麻烦的上标做到这一点时,我得到错误消息:“SyntaxError :( unicode error)'unicodeescape'编解码器无法解码位置0-4中的字节:截断\ uXXXX转义”通常错误消息使没有意义。这是我用于上标的代码,它不起作用:

uw = u"\u2b7"
uy = u"\u2b8"
uj = u"\u2B2"
ul = u"\u2E1"
ur = u"\u2b3"
us = u"\u2e2"
uh = u"\u2b0"

它必须与所有这些上标以2开头并且只有3位数的事实有关。我也尝试用大写和小写字母重写代码。

1 个答案:

答案 0 :(得分:3)

假设Python 3,它应该是16-bit or 32-bit hex(即4或8位)代码。您的错误消息通过说\uXXXX

提示4位数的要求
>>> uw = u"\u2b7"
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-4: truncated \uXXXX escape

但是,您也可以通过其他两种方式对Unicode字符进行编码(请参阅上面链接的文档):

>>> uw = u"\u02b7"
>>> uw = u"\u000002b7"
>>> uw = u"\N{MODIFIER LETTER SMALL W}"
>>>