1

我需要用正则表达式(gsub)替换以下字符:

ÃÆè-> è ÃÆà-> à ÃÆò-> ò ÃÆì-> ì ÃÆÃù-> ù

我的策略是首先删除ÃÆÃ所有人共有的前三个字符,然后移到最后一个字符,将à留在最后,因为它基本上是最低的公分母。现在 gsub 正确地删除了前三个,但是它接缝它看不到最后一个 - 就像¨- 但我注意到它看到ñ了(对于ñ)。

通过将字符复制/粘贴到文本编辑器中,我注意到它们会导致奇怪的行为(例如将光标向前移动几个位置)。

我的数据集是从一个网站下载的,该网站本身对最旧的页面有编码问题,但对最近的页面没有(我认为他们在过去几年的某个时候纠正了编码问题)。访问最旧的页面,您仍然可以清楚地看到相同的 Æè。那么问题不在于(我假设)在我的文件的编码中。

也就是说,编码错误仅限于数据集的区域,而不是整个文本语料库编码问题的结果。

4

1 回答 1

1

字符未正确显示时的问题是要准确了解正则表达式如何解析它们。如前所述,在我的情况下,编码错误仅限于我的数据集中的几个字符串。然后 Encoding() 不适用。

我通过直接在 R 控制台中可视化有问题的字符来解决问题。在控制台中,它们看起来像Ã\u0083Æ\u0092Ã\u0082¨在 R-studio 中它们被可视化为Ã Æ Ã Â¨. 在控制台中显示的是我需要正确匹配正则表达式:gsub("Ã\u0083Æ\u0092Ã\u0082¨"...

于 2013-09-03T08:56:06.733 回答