python3编码替换unicode字符

问题描述 投票:0回答:2

根据文档,以下命令

'Brückenspinne'.encode("utf-8",errors='replace')

应该给我字节序列

b'Br??ckenspinne'
。然而,unicode 字符不会被替换,而是会被编码:

b'Br\xc3\xbcckenspinne'

你能告诉我如何真正消除 unicode 字符吗? (我使用替换来进行测试,我打算稍后使用

'xmlcharrefreplace'
。说实话,我想将 unicode 字符转换为其 xmlcharref,将所有内容保留为字符串)。

谢谢你。

python python-3.x unicode python-unicode
2个回答
3
投票

utf-8
编码可以表示字符
ü
;不会发生更换。

使用其他无法表示该字符的编码。例如

ascii

>>> 'Brückenspinne'.encode("ascii", errors='replace')
b'Br?ckenspinne'

>>> 'Brückenspinne'.encode("ascii", errors='xmlcharrefreplace')
b'Brückenspinne'

0
投票

您可以使用 .encode("utf-8",errors='replace') 后跟 .decode()

>>> text = 'Brückenspinne'.encode("utf-8", errors='replace')
>>> text
b'Br\xc3\xbcckenspinne'
>>> text.decode()
'Brückenspinne'

或 .encode() + .decode()

>>> text = 'Brückenspinne'.encode("utf-8",errors='replace').decode()
>>> text
'Brückenspinne'

欲了解更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.