首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用unicode character u201c

使用unicode character u201c
EN

Stack Overflow用户
提问于 2016-02-09 08:15:27
回答 1查看 12.5K关注 0票数 5

我是python的新手,在理解unicode时遇到了一些问题。我使用的是Python 3.4。我花了一整天的时间通过阅读包括http://www.fileformat.info/info/unicode/char/201C/index.htmhttp://python-notes.curiousefficiency.org/en/latest/python3/text_file_processing.html在内的unicode来解决这个问题。

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

代码语言:javascript
运行
复制
print ('“') # that's the special quote mark in between normal single quotes

并获得以下输出:

代码语言:javascript
运行
复制
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>

那么,我该如何编写引用这两个字符u201Cu201D的代码呢

这是file open语句中的正确编码选择吗?

代码语言:javascript
运行
复制
with open(fileIn, mode='r', encoding='utf-8', errors='replace') as f:
EN

回答 1

Stack Overflow用户

发布于 2016-02-09 08:42:21

原因是,在3.x Python中,您不能仅将unicode字符串与字节字符串混合。您可能已经阅读过处理Python2.x的手册,其中只要bytestring包含可转换字符,这些事情就是可能的。

代码语言:javascript
运行
复制
print('\u201c', '\u201d')

对我来说没问题,所以唯一的原因是你对源文件或终端使用了错误的编码。

此外,您还可以显式地将python指向您正在使用的代码页,方法是将下一行代码放在源代码的顶部:

代码语言:javascript
运行
复制
 # -*- coding: utf-8 -*-

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

代码语言:javascript
运行
复制
chcp 65001

在你启动你的python解释器之前。这些更改是暂时的,如果您希望永久更改,请运行下一个.reg文件:

代码语言:javascript
运行
复制
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Console]
"CodePage"=dword:fde9
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35281774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档