Python 将字符串编码为ascii码

Python 将字符串编码为ascii码,python,encoding,ascii,Python,Encoding,Ascii,我有一个长字符串,我想编码成ascii码。我正在做: s = s.encode('ascii', 'replace') 但我得到: 'ascii' codec can't decode byte 0xc3 in position 2646: ordinal not in range(128) (我也尝试了“忽略”,但没有效果。) 我做错了什么?您的字符串已通过某种编码进行了编码。在将其编码为ascii之前,必须先对其进行解码 Python正在尝试对其进行隐式解码(这就是为什么会出现Unico

我有一个长字符串,我想编码成ascii码。我正在做:

s = s.encode('ascii', 'replace')
但我得到:

'ascii' codec can't decode byte 0xc3 in position 2646: ordinal not in range(128)
(我也尝试了
“忽略”
,但没有效果。)


我做错了什么?

您的字符串已通过某种编码进行了编码。在将其编码为ascii之前,必须先对其进行解码

Python正在尝试对其进行隐式解码(这就是为什么会出现
UnicodeDecodeError
而不是
UnicodeDecodeError

您可以通过在尝试将bytestring重新编码为ascii之前显式解码bytestring(使用适当的编码)来解决此问题

例如:

s = s.decode('some_encoding').encode('ascii', 'replace')
使用正确的编码您的字符串首先被编码,而不是
'some\u encoding'


您必须知道字符串使用的是哪种编码,然后才能对其进行解码。字符串从何处获得?

encode
应用于
unicode
对象,以将其转换为
str
。 如果您有一个str对象,您应该使用
decode
将其转换为
unicode