python - 私有(private) Unicode 字符在 Python 3 解释器中显示不同

标签 python windows unicode python-3.4 python-idle

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

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

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

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

最佳答案

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

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

演示

我通过生成我自己的私有(private)角色来测试您的问题。我将在此处放置我的测试图像,因为它无法在 Stack Overflow 上以文本形式正确呈现。

enter image description here

说明

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

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

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

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

关于python - 私有(private) Unicode 字符在 Python 3 解释器中显示不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447166/

相关文章:

python - 从文本文件读取时的 Unicode 编码

python - 使用 urllib 计算网页上的图像数量

python - 将Windows上的python脚本交叉编译为linux可执行文件

c - SHELLEXECUTEINFO UNICODE 支持吗?

c++ - 在 Unicode 中转换变量

windows - 从命令行打开 Chrome

python - 有没有一种简单、优雅的方式来定义单例?

python - 传递一个列表以在 python 中使用可变数量的 args 函数

python - Django 找不到 psycopg2 模块

windows - 强制 Xamarin 在 Windows 上使用 Mono