所以我在Windows 10上使用私人角色编辑器私下创建了一个unicode角色。该角色保存了代码E000
。我从字符映射复制它并粘贴到文本编辑器中它起作用。但是,当我将其粘贴到Python IDLE编辑器中时,即使在运行程序之前,它也会更改为不同的unicode字符。我不能使用u'unicode_string'
或类似的东西,因为我的unicode角色甚至不能在翻译中工作。我是编程新手。
我的问题是,如何在Python 3.4中使用我的私有unicode字符?
This就是我在记事本上看到的。
This就是我在Python 3.4解释器上看到的。
答案 0 :(得分:1)
Python并不是真正有趣的部分,而是shell或终端。在我们的例子中,Windows使用特殊代码点来表示私有字符编码。要获得这些,您需要在Windows中的shell上获得该字符的十六进制转储,然后您可以在Python中呈现该字符。
注意:使用Unicode点E021
或更高,因为较低数量的代码点通常用于控制,而且似乎是Windows shell, python interpreter和IDLE use不允许你覆盖那些带有私有字符的东西。
我通过生成自己的私人角色来测试你的问题。我会在这里放置一个测试图像,因为它不会在Stack Overflow上的文本中正确呈现。
我使用Windows 10中的Character Map
程序复制符号并将其粘贴到我的python环境中。环境可能会在右侧截断它,因为它是一个广泛的角色,而环境似乎并不喜欢这样。 (我移动光标使其呈现全宽。)
然后我通过使用默认的utf-8编码对字符进行编码来获得代码点的hexdump,结果证明\xee\x80\xa1
为bytes
对象。
接下来,我将数据打印为字符串,以显示常见错误,以及如果您尝试打印这些字节的字符串将打印的内容。
然后,我打印了b'\xee\x80\xa1'
,这就是你在软件中实际使用这个符号的方式。
答案 1 :(得分:0)
您可以在Python源代码中使用\u
转义序列,如下所示:
my_unicode_string = 'This is my character: \ue000'
print(my_unicode_stirng)