Python 使用unicode字符u201c
我是python新手,在理解unicode时遇到问题。我正在使用 Python 3.4。 我花了一整天的时间,通过阅读有关unicode包括和的内容,试图弄明白这一点 我需要引用特殊的引号,因为它们在我分析的文本中使用。我测试了W7命令窗口是否可以读取和写入2个特殊的引号字符。 为了简单起见,我写了一行脚本: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
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