开发者社区> 问答> 正文

Python,Unicode和Windows控制台

当我尝试在Windows控制台中打印Unicode字符串时,出现UnicodeEncodeError: 'charmap' codec can't encode character ....错误。我认为这是因为Windows控制台不接受仅Unicode字符。最好的办法是什么?有什么办法可以使Python自动打印?而不是在这种情况下失败?

展开
收起
游客ufivfoddcd53c 2020-01-03 16:28:04 961 0
1 条回答
写回答
取消 提交回答
  • 如果您不希望获得可靠的坏字符表示形式,则可以使用类似的方法(使用python> = 2.6,包括3.x):

    from __future__ import print_function
    import sys
    
    def safeprint(s):
        try:
            print(s)
        except UnicodeEncodeError:
            if sys.version_info >= (3,):
                print(s.encode('utf8').decode(sys.stdout.encoding))
            else:
                print(s.encode('utf8'))
    
    safeprint(u"\N{EM DASH}")
    
    

    字符串中的错误字符将转换为Windows控制台可打印的表示形式。

    2020-01-03 16:28:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
TAKING WINDOWS 10 KERNEL 立即下载
DTS控制台一本通 立即下载
ECS运维指南之Windows系统诊断 立即下载