Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字符集问题UTF-8_Python_Python 2.7_Utf 8_Character Encoding_Special Characters - Fatal编程技术网

Python 字符集问题UTF-8

Python 字符集问题UTF-8,python,python-2.7,utf-8,character-encoding,special-characters,Python,Python 2.7,Utf 8,Character Encoding,Special Characters,我有一个文档,其中单词“not”包含撇号,如下所示 当我试图通过一个python程序来处理这个问题时,它会将单词显示为“dondsÆt”,并退出,错误如下所述 UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 70: invalid start byte 我在记事本中打开了文档,并将编码从ANSI更改为UTF-8(可以在web上找到),现在它工作正常 但是有人能解释一下,所有这些都是关于什么的,我如何用我的

我有一个文档,其中单词“not”包含撇号,如下所示

当我试图通过一个python程序来处理这个问题时,它会将单词显示为“dondsÆt”,并退出,错误如下所述

UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 70: invalid start byte
我在记事本中打开了文档,并将编码从ANSI更改为UTF-8(可以在web上找到),现在它工作正常


但是有人能解释一下,所有这些都是关于什么的,我如何用我的笔记本电脑键盘键入这种撇号。

MS Word将引号转换为“智能引号”,以便它们正确地围绕单词或指向正确的方向作为撇号

你没有完全忠实于你的复制粘贴,所以很难确定我们谈论的是同一件事

例如,以下是与普通ascii相比的智能引号:

没有vs.没有

“你好”对“你好”

注意左边的智能引号是如何卷曲的。在您的屏幕截图中,
将被映射到Unicode点U+2019(“右单引号”)。使用Windows组合键并键入Unicode值,无法轻松手动键入智能引号

然后,您可能将此文本保存为Windows-1252(西欧)编码(又称ANSI),该编码分配了字节
0x92
。然后,您将其加载到Python中,但传递了错误的UTF-8编码。那就是你看到例外的时候

将来处理这个问题的方法是在Python中打开文件时指定正确的编码。例如

with io.open("myfile.txt", 'r', encoding="windows-1252") as my_file:
    my_data = my_file.read()

嗯,我希望你能把原文的“不”字贴出来,而不是一张图片。Python应该不会遇到ASCII撇号的问题。可能看起来像撇号的东西实际上是一个不同的非标准字符。