Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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编码问题_Python_Encoding - Fatal编程技术网

Python编码问题

Python编码问题,python,encoding,Python,Encoding,为什么我会遇到这个问题?我该如何解决它 UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 24: unexpected code byte 谢谢你在某个地方,也许是微妙地,你在要求Python将字节流转换为字符的“字符串” 不要认为字符串是“字节”。字符串是一个数字列表,每个数字在Unicode中具有一致的含义。(#65=拉丁文大写字母A.#19968=汉字“一”/“一”) 有许多方法可以将Unicode实体

为什么我会遇到这个问题?我该如何解决它

UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 24: unexpected code byte

谢谢你

在某个地方,也许是微妙地,你在要求Python将字节流转换为字符的“字符串”

不要认为字符串是“字节”。字符串是一个数字列表,每个数字在Unicode中具有一致的含义。(#65=拉丁文大写字母A.#19968=汉字“一”/“一”)

有许多方法可以将Unicode实体列表编码为字节流。Python假定您的字节流是一种特殊的方法(称为“UTF-8”)的结果

但是,您的字节流包含与该方法不对应的数据。这样就产生了错误

您需要找出字节流的编码,并告诉Python该编码

了解您使用的是Python2还是Python3,以及导致此异常的代码,以了解字节的来源以及处理它们的适当方法,这一点很重要

如果是读取文件,则可以明确地处理读取的字节。但您必须确定文件编码


如果它来自一个字符串,它是源代码的一部分,那么Python假定源文件是“错误的”。。。可能需要设置
$LC\u ALL
$LANG
。这是一个很好的时机来坚定地理解编码的概念,文本编辑器如何选择要编写的编码,以及您的语言和操作系统的标准是什么

除了Joe所说的之外,还有一个有用的工具来检测源数据的编码。

在某个地方,您有一个编码为“Windows-1252”(或“cp1252”)的普通字符串,其中包含一个“右单引号”('),而不是一个撇号(')。这可能来自您读取的文件,甚至来自您的Python源文件;您可以运行Python2.x并在脚本开头附近有一行
#-*-编码:utf8-*-
,也可以运行Python3.x

你没有提供足够的数据;然而,在某个地方您有一个cp1252编码的字符串,您尝试(显式或隐式)将其解码为utf-8形式的unicode。这行不通

请提供更多信息,我们将再次尝试帮助您


Joe Koberg的回答让我想起了我的一个更老的答案,一些人认为这很有帮助:

你能解释一下你想做什么吗?请提供更多信息并发布一些代码。请参阅:更多信息,尤其是Python 3.x或2.x