我使用分别在Windows10和Linux上运行的Python3代码print(u'𩝫')
。
Linux显示假定的结果“𩝫”,而窗口显示“口口”。
起初,我以为是因为窗口系统语言是简体中文,所以我用繁体中文(台湾)进行了更改。但是仍然没有用。我尝试了很多方法,包括codec.encode()和codec.decode(),但都失败了。
现在我的问题是:如何在Windows上显示预期的结果“𩝫”?
最佳答案
Windows控制台中的每个字符单元格都包含一个single 16-bit character(WCHAR
),它将控制台限制为Unicode基本多语言平面(BMP),即,前65535个代码点,最多U + 00FFFF。字符“𩝫”是U + 02976B,必须将其编码为一对UTF-16代理代码(U + 00D865和U + 00DF6B),并存储在两个连续的字符单元中。单独地,代理代码不是有效的Unicode字符。通常,它们显示为一个空框或其他一些默认字形。
可以将代理对从控制台复制到剪贴板,然后粘贴到另一个窗口中。如果目标窗口支持呈现非BMP字符,则它应正确显示为“𩝫”。
关于python - 在Windows10和Linux上运行的python的罕见繁体中文的不同输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46047646/