原始问题

使用python将unicode字符\u0332打印到命令提示符,会在前一个字母之后而不是下划线后出现一个下划线。

我根据在网络上发现的一些建议运行了chcp 65001,它在运行该命令之前或之后均无法正确显示。

例:

C:\>python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 22:39:24) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print(u"this is a te\u0332st.")
this is a te_st.


预期产量:

this is a te̲st.

(注意:将控制台的输出粘贴到此处的副本可以正确显示该字符,如预期输出所示)

编辑1:

似乎在命令提示符下没有显示Unicode组合字符。

基于@ErykSun的评论的新问题

有没有简单的方法可以将python打印和输入调用重定向到ConEmu(或类似程序),或编写替换它们的自定义函数?

编辑1:

根据@lenz的建议,是否可以运行ConEmu并将其传递给命令以从命令运行?

最佳答案

感谢@ErykSun的评论,我将我的默认终端设置为ConEmu,它可以正确显示Unicode组合字符。

对于希望寻找此问题答案的未来用户,假设您使用的是ConEmu,则可以通过以下操作将其设置为默认控制台:

右键单击顶部栏,然后转到Settings...(或使用键盘快捷键Win + Alt + P)

转到左侧菜单中的Intergration -> Default term

选中以下框:

Force ConEmu as default terminal for console applicationsRegister on OS startupLeave in TSAAggressive mode

然后点击Save settings

08-07 11:33