Python如何解决字符串中的Unicode错误
我得到了经典错误: ascii“编解码器无法解码第28位的字节0xc3:序号不在 射程(128) 这一次,我解决不了。错误来自以下行:Python如何解决字符串中的Unicode错误,python,unicode,utf-8,Python,Unicode,Utf 8,我得到了经典错误: ascii“编解码器无法解码第28位的字节0xc3:序号不在 射程(128) 这一次,我解决不了。错误来自以下行: mensaje_texto_inmobiliaria = "%s, con el email %s y el teléfono %s está se ha contactado con Inmobiliar" % (nombre, email, telefono) 具体来说,从teléfonoword。我尝试在文件的开头添加-*-coding:utf-8-*-
mensaje_texto_inmobiliaria = "%s, con el email %s y el teléfono %s está se ha contactado con Inmobiliar" % (nombre, email, telefono)
具体来说,从
teléfono
word。我尝试在文件的开头添加-*-coding:utf-8-*-
,添加unicode()
和.encode(“utf-8”)
。什么都没用。任何建议都会有帮助。这是为了回答为什么这可以解决OP的问题,而OP正在尝试描述一些关于这个问题的背景
from __future__ import unicode_literals
from builtins import str
在默认的iPython 2.7内核中:
(伊皮顿会议)
python 2.7中需要注意的一些其他事项:
与“é”
str(“é”)
与u“é”
或“é”相同。解码('utf-8')
unicode(“é”,'utf-8')
与u“é”。encode('utf-8')
str(“é”)
- 通常使用py2
str调用decode,并使用py2
编码。unicode
- 由于早期的设计问题,您可以调用这两个选项中的任何一个,尽管这实际上没有任何意义
- 在python3中,
,与python2str
相同,不能再被解码,因为根据定义,字符串是已解码的字节序列。默认情况下,它使用utf-8编码unicode
- 在ascii编解码器中使用进行编码的字节序列的行为与解码的字节序列的行为完全相同。
- 在没有未来导入的python 2.7中:
提供了一个unicode对象,但其行为与type(“a”).decode('ascii')
几乎相同。python3的情况并非如此str(“a”)
- 在没有未来导入的python 2.7中:
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
具有以下效果:from\uuuuu future\uuuuu导入unicode\u文本
- 没有将来的导入,
与“é”
str(“é”)
- 随着未来的导入,
在功能上与“é”
unicode(“é”)
- 没有将来的导入,
是一个由核心python团队批准的模块,它包含用于在python2和python3 api中使用python3习惯用法的安全别名。builtins
- 由于我无法理解的原因,包本身被命名为“future”,因此要安装运行的
内置模块:
pip install future
- 由于我无法理解的原因,包本身被命名为“future”,因此要安装运行的
- 来自内置导入str的
具有以下效果:
构造函数现在提供了您认为它的功能,即python2 unicode对象形式的文本数据。因此,它在功能上与str
str=unicode
- 注意:Python3
在功能上与Python2str
unicode
- 注意:要获取字节,可以使用“bytes”前缀,例如
b'é'
str
对象表示字节,使用unicode
对象表示文本这是为了回答为什么这解决了OP的问题,以及OP试图描述的问题背景
from __future__ import unicode_literals
from builtins import str
在默认的iPython 2.7内核中:
(伊皮顿会议)
python 2.7中需要注意的一些其他事项:
与“é”
str(“é”)
与u“é”
或“é”相同。解码('utf-8')
unicode(“é”,'utf-8')
与u“é”。encode('utf-8')
str(“é”)
- 通常使用py2
str调用decode,并使用py2
编码。unicode
- 由于早期的设计问题,您可以调用这两个选项中的任何一个,尽管这实际上没有任何意义
- 在python3中,
,与python2str
相同,不能再被解码,因为根据定义,字符串是已解码的字节序列。默认情况下,它使用utf-8编码unicode
- 在ascii编解码器中使用进行编码的字节序列的行为与解码的字节序列的行为完全相同。
- 在没有未来导入的python 2.7中:
提供了一个unicode对象,但其行为与type(“a”).decode('ascii')
几乎相同。python3的情况并非如此str(“a”)
- 在没有未来导入的python 2.7中:
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
具有以下效果:from\uuuuu future\uuuuu导入unicode\u文本
- 没有将来的导入,
与“é”
str(“é”)
- 随着未来的导入,
在功能上与“é”
unicode(“é”)
- 没有将来的导入,
是一个由核心python团队批准的模块,它包含用于在python2和python3 api中使用python3习惯用法的安全别名。builtins
- 由于我无法理解的原因,包本身被命名为“future”,因此要安装运行的
内置模块:
pip install future
- 由于我无法理解的原因,包本身被命名为“future”,因此要安装运行的
- 来自内置导入str的
具有以下效果:
构造函数现在提供了您认为它的功能,即python2 unicode对象形式的文本数据。因此,它在功能上与str
str=unicode
- 注意:Python3
在功能上与Python2str
unicode
- 注意:过得去