繁体   English   中英

使用unicode字符u201c

[英]Using unicode character u201c

我是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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM