反转python对umlaut的编码以规范化文本或以当前形式规范化

2024-10-04 03:29:55 发布

您现在位置:Python中文网/ 问答频道 /正文

Python会自动将德语的umlauts和标点符号读取为

Gefrier-und TiefkühlmÃbel

如何规范化此输出以删除标点符号


Tags: 规范化标点符号belundumlautshlmtiefkgefrier
1条回答
网友
1楼 · 发布于 2024-10-04 03:29:55

您可以通过执行以下操作“修复”编码问题:

the_string = 'Gefrier- und Tiefkühlmöbel'.encode('latin-1').decode('utf-8')

然后应用这样的解决方案:https://stackoverflow.com/a/518232/2452074

import unicodedata
def strip_accents(s):
   return ''.join(c for c in unicodedata.normalize('NFD', s)
                  if unicodedata.category(c) != 'Mn')

strip_accents(the_string)
> 'Gefrier- und Tiefkuhlmobel'

但首先,我想试着理解为什么您的输入看起来是坏的,Python本身不应该自动这样做

关于unicode和编码的一些背景文档:https://docs.python.org/3/howto/unicode.html

相关问题 更多 >