Guy*_*Guy 11 python encoding ascii
我有一个长字符串,我想编码为ascii.我正在做:
s = s.encode('ascii', 'replace')
Run Code Online (Sandbox Code Playgroud)
但我得到:
'ascii' codec can't decode byte 0xc3 in position 2646: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
(我也尝试过,'ignore'但没有用.)
我究竟做错了什么?
nos*_*klo 16
您的字符串已经使用某种编码进行编码.在将其编码为ascii之前,必须先对其进行解码.
Python 试图解码它是不明智的(这就是为什么你得到的UnicodeDecodeError不是UnicodeEncodeError).
在尝试将其重新编码为ascii 之前,您可以通过明确解码您的bytestring(使用适当的编码)来解决问题.
例:
s = s.decode('some_encoding').encode('ascii', 'replace')
Run Code Online (Sandbox Code Playgroud)
使用正确的编码,您的字符串首先编码,而不是'some_encoding'.
在解码之前,您必须知道字符串正在使用哪种编码.你是从哪里得到的?
| 归档时间: |
|
| 查看次数: |
30771 次 |
| 最近记录: |