私有 Unicode 字符在 Python 3 解释器中显示不同

Private Unicode Character displays differently in Python 3 Interpreter

所以我在 Windows 10 上使用 Private Character Editor 私下创建了一个 unicode 字符。该字符使用代码 E000 保存。我从 Character Map 复制它并粘贴到文本编辑器中,它起作用了。但是,当我将它粘贴到 Python IDLE 编辑器时,它会更改为不同的 unicode 字符,甚至在 运行 程序之前。我不能使用 u'unicode_string' 或类似的东西,因为我的 unicode 字符甚至在解释器中都不起作用。我是编程新手。

我的问题是,如何在 Python 3.4 中 使用 我的私有 unicode 字符?

This是我在记事本上看到的

This 是我在 Python 3.4 解释器上看到的。

您可以在 Python 源代码中使用 \u 转义序列,如下所示:

my_unicode_string = 'This is my Unicode character: \ue000'
print(my_unicode_string)

Python 并不是真正有趣的部分,而是 shell 或终端。在我们的例子中,Windows 使用特殊代码点来表示私有字符编码。要获得这些,您需要在 Windows 中的 shell 中获取字符的十六进制转储,然后您可以在 Python.

中渲染字符

注意:使用 Unicode 点 E021 更高的 ,因为较低的代码点通常用于控制,并且python 解释器和 IDLE 使用的 Windows shell 似乎不允许您覆盖那些带有私有字符的字符。

示范[​​=33=]

我通过生成我自己的私有角色来测试你的问题。我会在这里放一张我的测试图片,因为它不会在 Stack Overflow 上的文本中正确呈现。

说明

我使用Windows10中的Character Map程序复制符号并粘贴到我的python环境中。环境可能会在右侧截断它,因为它是一个宽字符,而环境似乎不喜欢那样。 (我四处移动光标以使其呈现全角。)

然后我通过使用默认的 utf-8 编码对字符进行编码来获取代码点的 hexdump,结果是 \xee\x80\xa1 作为 bytes 对象。

接下来我将数据打印为字符串以向您展示一个常见错误,以及如果您尝试打印这些字节的字符串会打印什么。

然后,我打印了 b'\xee\x80\xa1',这就是您在软件中实际使用该符号的方式。