无法以 unicode 打印某些上标
Posted
技术标签:
【中文标题】无法以 unicode 打印某些上标【英文标题】:Cannot print certain superscripts in unicode 【发布时间】:2016-06-09 01:33:47 【问题描述】:使用此页面 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' codec can't decode bytes in position 0-4: truncated \uXXXX escape”没有意义。这是我用于无法使用的上标的代码:
uw = u"\u2b7"
uy = u"\u2b8"
uj = u"\u2B2"
ul = u"\u2E1"
ur = u"\u2b3"
us = u"\u2e2"
uh = u"\u2b0"
这一定与所有这些上标都以 2 开头并且只有 3 位数字有关。我也试过用大写和小写字母重写代码。
【问题讨论】:
【参考方案1】:假设 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"\NMODIFIER LETTER SMALL W"
>>>
【讨论】:
太棒了。如果这是一个可接受的解决方案,请不要忘记接受答案。谢谢!以上是关于无法以 unicode 打印某些上标的主要内容,如果未能解决你的问题,请参考以下文章