python - 使用 unicode 字符 u201c

标签 python python-3.x unicode encoding utf-8

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

我需要引用特殊引号,因为它们在我正在分析的文本中使用。我确实测试过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>

那么我该如何写一些东西来引用这两个字符 u201Cu201D

这是文件打开语句中的正确编码选择吗?

with open(fileIn, mode='r', encoding='utf-8', errors='replace') as f:

最佳答案

原因是在 3.x Python 中你不能只将 unicode 字符串与字节字符串混合。您可能已经阅读了有关 Python 2.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

关于python - 使用 unicode 字符 u201c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281774/

相关文章:

python - 用于 Python 的 MySQLdb - 不兼容的库版本错误?

python - 从文件中读取和存储任意字节长度的整数

python - 如何以编程方式创建嵌套目录和文件的 tar 存档,仅来自 Python 字符串且没有临时文件?

delphi - Copy 有 ANSI 版本吗?

c - 如何使用 C API 从 ICU4C UChar * 转换为 char *(以打印 Unicode 字符串)?

python - 无法在 Anaconda/Python3 中导入 clang 绑定(bind)

python-3.x - 在数据帧 'int' 上获取此对象没有属性 'lower'

python-3.x - Postgres、sqlalchemy 和多处理

python - 将类方法访问到实例方法的最佳方法

Python 撤消 Unicode