首页 > 解决方案 > Python:保留德语特殊字符并解码\x84的字符串编码

问题描述

我目前正在处理一些采访记录。我的目标是阅读这些成绩单,以便稍后对它们执行一些自然语言处理任务。成绩单是德语,成绩单是 .rtf 文件。我使用 rtf_to_textfrom 函数striprtf读取成绩单。输出是一个字符串对象。

这实际上效果很好 - 但是在某些成绩单中,字符没有正确解码,例如:

Out: "Ähm, [..} du kannst ruhig \x84du\x93 sagen."

原文应为:

"Ähm, [..} du kannst ruhig "du" sagen."

有没有办法在保留德语特殊字符(例如“Ä”)的同时正确解码?

如果我这样做,.encode("utf-8").decode("ascii")我会丢失 \x84 和 \x93 以及所有德语特殊字符。

标签: pythonstringtextencodingrtf

解决方案


不,没有 Ä 保留其 Unicode 代码点的编码(我猜输入有\xe4?),而字节\x84\x93其他含义。

可能正确的解决方法是找出原始 RTF 使用的编码并在解析 RTF 文件时正确解码。

https://tripleee.github.io/8bit/#84显示了许多编码,其中\x84解码为 Unicode 代码点U+201E;除了cp874相同的具有预期的编码\x93。与 比较\xe4将具有预期编码的集合减少为cp1250cp1252cp1254cp1257cp1258palmos。如果您有额外的数据点,您可能可以进一步缩小范围......或者只是打赌输入编码可能cp1252是西欧常见的 Windows 默认 scourge^Wcode 页面。

(免责声明:这是我创建的一个页面,从前。)


推荐阅读