如何组合 Unicode 以在 Python 2 输出中工作?
How do I get combining Unicode to work in Python 2 output?
我有使用组合 unicode 的字符串,但无法让 Python 2.7 正确显示它们。
比如我有
"IJK83LMN"
应该显示为*
IJK̲̅LMN
而是显示为
JK8ǻLMN
当我
from __future__ import (print_function, unicode_literals)
print("IJK83LMN")
或
from __future__ import (print_function, unicode_literals)
print(unicode("IJK83LMN").encode('utf-8'))
我可以确认我正在打印的设备可以正确显示组合 unicode。
如何组合 Unicode 以在 Python 2.7 输出中工作?
OS X: 10.11.1;自制软件 Python 2.7.10_2
* 实际上,这也可能无法在您的浏览器中正确显示。它在我的中正确显示:'K'.
上方和下方的栏
您正在使用 Python 符号表示 octal 转义,而不是 Unicode 代码点。例如,如果你想包含 U+0332 COMBINING LOW LINE and U+0305 COMBINING OVERLINE 字符,你需要在 Unicode 字符串中使用 \uhhhh
hex 转义序列:
>>> print u'IJK\u0332\u0305LMN'
IJK̲̅LMN
这里818十进制是0332十六进制,773是0303十六进制
你得到的是 8
,因为 818
不是有效的八进制数(数字在 0-7 范围内)。 3
八进制转换为 U+01FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE.
我有使用组合 unicode 的字符串,但无法让 Python 2.7 正确显示它们。
比如我有
"IJK83LMN"
应该显示为*
IJK̲̅LMN
而是显示为
JK8ǻLMN
当我
from __future__ import (print_function, unicode_literals)
print("IJK83LMN")
或
from __future__ import (print_function, unicode_literals)
print(unicode("IJK83LMN").encode('utf-8'))
我可以确认我正在打印的设备可以正确显示组合 unicode。
如何组合 Unicode 以在 Python 2.7 输出中工作?
OS X: 10.11.1;自制软件 Python 2.7.10_2
* 实际上,这也可能无法在您的浏览器中正确显示。它在我的中正确显示:'K'.
上方和下方的栏您正在使用 Python 符号表示 octal 转义,而不是 Unicode 代码点。例如,如果你想包含 U+0332 COMBINING LOW LINE and U+0305 COMBINING OVERLINE 字符,你需要在 Unicode 字符串中使用 \uhhhh
hex 转义序列:
>>> print u'IJK\u0332\u0305LMN'
IJK̲̅LMN
这里818十进制是0332十六进制,773是0303十六进制
你得到的是 8
,因为 818
不是有效的八进制数(数字在 0-7 范围内)。 3
八进制转换为 U+01FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE.