python - 如何将 Unicode 组合到 Python 2 输出中?

标签 python python-2.7 unicode output

我有使用组合 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”上方和下方有一个条。

最佳答案

您使用的是 Python 表示法来表示八进制转义符,而不是 Unicode 代码点。如果您想包括 U+0332 COMBINING LOW LINEU+0305 COMBINING OVERLINE例如,您需要在 Unicode 字符串中使用 \uhhhh hex 转义序列:

>>> print u'IJK\u0332\u0305LMN'
IJK̲̅LMN

这里十进制的818是十六进制的0332,而773是十六进制的0303。

您得到的是 \818,因为 818 不是有效的八进制数(其中数字在 0-7 范围内)。八进制的 \773 转换为 U+01FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE .

关于python - 如何将 Unicode 组合到 Python 2 输出中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33318988/

相关文章:

java - python服务器和java客户端: image is corrupted when sent from python server to java client

python - 从点到函数的最短距离 scipy

python - 在 python 中比较文件、检查文件名、文件大小和校验和 md5 的路径

c++ - 将 u16string 转换为 float

c++ - 如何对包含 Unicode 字符的 std::wstring 进行 HTML/URL 编码?

python - 在 python 中的对列表中找到最小 x 和 y 值的最佳方法?

python - GEOSGeometry 到底是什么

python-2.7 - Viz LDA 模型,具有 Bokeh 和 T-sne

python - 无法在 GAE 的 python 中导入正确的模块

python - Python 2.7在python中同时解码UTF-8和unicode-escape会导致UnicodeEncodeError