【问题标题】:Trying to print check mark U+2713 in Python on Windows produces UnicodeEncodeError尝试在 Windows 上的 Python 中打印复选标记 U+2713 会产生 UnicodeEncodeError
【发布时间】:2014-08-16 18:28:35
【问题描述】:

我已经阅读了Print the "approval" sign/check mark (✓) U+2713 in Python,但没有一个答案对我有用。我在 Windows 上运行 Python 2.7。

print u'\u2713'

产生这个错误:

exceptions.UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-1: character maps to

这个:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
print '✓'

因为我使用的是 Windows,所以不起作用。

print u'\u2713'.encode('utf8')

打印出“”,这不是正确的字符。

print('\N{check mark}')

真是傻。这会按字面意思打印\N{check mark}

【问题讨论】:

标签: python python-2.7 unicode printing


【解决方案1】:

阅读http://www.joelonsoftware.com/articles/Unicode.html,你就会明白发生了什么。

坏消息是:您将无法打印该字符,因为它在 Windows 终端的默认文本编码中根本不可用。修改您的终端配置以使用“utf-8”而不是默认的“cp-852”或这些天 Window 的 cmd 的默认值,你应该很好,但只有在 阅读之后才这样做上面的文章,认真的。

【讨论】:

  • 原则上是对的,只是你实际上不能将 Windows 命令提示符设置为 UTF-8。 (您可以尝试代码页 65001,但 MSVCRT 中存在严重的错误导致此代码无法使用。)
猜你喜欢
  • 1970-01-01
  • 2016-08-14
  • 2021-04-27
  • 2018-08-09
  • 2013-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
相关资源
最近更新 更多