包含双引号字符的python字符串

包含双引号字符的python字符串,python,string,double-quotes,Python,String,Double Quotes,我有由字符组成的输入字符串,包括双引号和单引号“和” 但是,当我从一个文本文件打开上面的输入并打印它时,第三行中的双引号“将被打印为\xe2\x80\x9d 我的目标是做一个简单的字符计数: B 2 @ 3 S 2 $ 3 etc. 所以我希望能够输出 " 3 在上面的列表中。我是否应该用一些东西来替换双引号,这样我就可以对它们进行计数并打印出计数 非常感谢 \xe2\x80\x9d 是“特殊”双引号的unicode值。您可以将UTF-8解码为Unicode,将其转换为“单个”Unicode

我有由字符组成的输入字符串,包括双引号和单引号“和”

但是,当我从一个文本文件打开上面的输入并打印它时,第三行中的双引号“将被打印为\xe2\x80\x9d

我的目标是做一个简单的字符计数:

B 2
@ 3
S 2
$ 3
etc.
所以我希望能够输出

" 3
在上面的列表中。我是否应该用一些东西来替换双引号,这样我就可以对它们进行计数并打印出计数

非常感谢

\xe2\x80\x9d

是“特殊”双引号的unicode值。您可以将UTF-8解码为Unicode,将其转换为“单个”Unicode字符

>>> print "\xe2\x80\x9d".decode("utf-8")
”
>>> len("\xe2\x80\x9d".decode("utf-8"))
1
如果您使用的是Python 3:

>>> print(b"\xe2\x80\x9d".decode('utf8'))
”
>>> len(b"\xe2\x80\x9d".decode("utf-8"))
1
因此,对于正在计算的文件(在Python 2中):


非常感谢,马丁-这绝对有帮助。现在,当我将每一行解码为utf8,然后进行字符计数时,双引号显示为u'\u201d',并且它们不会再次打印。有办法吗?你是怎么打印的?另外,您使用的是Python2还是Python3?我使用的是Python2.76,我正在为字符计数创建一个键值对字典,然后打印键值。所以双引号被存储为u'\u201d':3,当我试图打印密钥时,它会抛出错误:UnicodeEncodeError:“ascii”编解码器无法对位置0处的字符u'\u201d'进行编码:序号不在范围内(128)您是否碰巧在某处使用了
str
函数?你的
print
代码是什么样子的?你是个天才-我一定是在玩的时候把str(键)放在那里的。非常感谢你!!!
>>> print(b"\xe2\x80\x9d".decode('utf8'))
”
>>> len(b"\xe2\x80\x9d".decode("utf-8"))
1
from collections import defaultdict
with open("filename", 'r') as f:
    for text in f:
        decoded = text.decode("utf-8")
        count = defaultdict(int)
        for i in decoded:
            count[i] += 1