Python 使用unicode字符u201c

Python 使用unicode字符u201c,python,python-3.x,unicode,encoding,utf-8,Python,Python 3.x,Unicode,Encoding,Utf 8,我是python新手,在理解unicode时遇到问题。我正在使用 Python 3.4。 我花了一整天的时间,通过阅读有关unicode包括和的内容,试图弄明白这一点 我需要引用特殊的引号,因为它们在我分析的文本中使用。我测试了W7命令窗口是否可以读取和写入2个特殊的引号字符。 为了简单起见,我写了一行脚本: print ('“') # that's the special quote mark in between normal single quotes 并获得以下输出: Traceba

我是python新手,在理解unicode时遇到问题。我正在使用 Python 3.4。 我花了一整天的时间,通过阅读有关unicode包括和的内容,试图弄明白这一点

我需要引用特殊的引号,因为它们在我分析的文本中使用。我测试了W7命令窗口是否可以读取和写入2个特殊的引号字符。 为了简单起见,我写了一行脚本:

print ('“') # that's the special quote mark in between normal single quotes
并获得以下输出:

Traceback (most recent call last):
  File "C:\Users\David\Documents\Python34\Scripts\wordCount3.py", line 1, in <module>
    print ('\u201c')
  File "C:\Python34\lib\encodings\cp437.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u201c' in position 0: character maps to <undefined>

原因是,在3.x Python中,不能将unicode字符串与字节字符串混合使用。您可能已经阅读了有关Python2.x的手册,在这些手册中,只要bytestring包含可转换字符,就可以实现这些功能

print('\u201c', '\u201d')
对我来说效果很好,所以唯一的原因是您对源文件或终端使用了错误的编码

您还可以通过在源代码的顶部抛出下一行代码,将python显式指向您正在使用的代码页:

 # -*- coding: utf-8 -*-
补充:看起来您正在Windows机器上工作,如果是这样,您可以通过运行以下命令将控制台代码页更改为utf-8

chcp 65001
在启动python解释器之前。这些更改将是临时的,如果您想要永久更改,请运行下一个.reg文件:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"CodePage"=dword:fde9

您的终端或文件编码是CP-437,而不是UTF-8。确保您的终端以UTF-8()运行,并且您的文件编码为UTF-8(请参阅编辑器设置)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"CodePage"=dword:fde9