私有Unicode字符在Python 3 Interpreter

时间:2017-01-03 15:44:58

标签: python windows unicode python-3.4 python-idle

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

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

This就是我在记事本上看到的。

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

2 个答案:

答案 0 :(得分:1)

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

注意:使用Unicode点E021更高,因为较低数量的代码点通常用于控制,而且似乎是Windows shell, python interpreter和IDLE use不允许你覆盖那些带有私有字符的东西。

示范

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

enter image description here

解释

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

然后我通过使用默认的utf-8编码对字符进行编码来获得代码点的hexdump,结果证明\xee\x80\xa1bytes对象。

接下来,我将数据打印为字符串,以显示常见错误,以及如果您尝试打印这些字节的字符串将打印的内容。

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

答案 1 :(得分:0)

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

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