问题描述
我有一些使用结合unicode的字符串,但是无法获取Python 2.7来正确显示它们。
例如我有
"IJK\818\773LMN"
应显示为*
IJK??LMN
而是显示为
JK\818?LMN
当我
from __future__ import (print_function, unicode_literals)
print("IJK\818\773LMN")
要么
from __future__ import (print_function, unicode_literals)
print(unicode("IJK\818\773LMN").encode('utf-8'))
我可以确认要打印到的设备可以正确显示合并的unicode。
如何合并Unicode以在Python 2.7输出中工作?
OS X:10.11.1; 自制Python 2.7.10_2
* 实际上,这也可能不会在您的浏览器中正确显示。 但是它在我的屏幕中正确显示:“ K”上方和下方的条形。
1楼
您正在使用Python表示法进行八进制转义,而不是Unicode代码点。
例如,如果要包含和字符,则需要在Unicode字符串中使用\\uhhhh
十六进制转义序列:
>>> print u'IJK\u0332\u0305LMN'
IJK??LMN
这里的818十进制是0332十六进制,而773是0303十六进制。
您却得到了\\818
,因为818
不是有效的八进制数字(其中的数字在0-7范围内)。
八进制的\\773
转换为