R语言 如何修复错误的字符串编码?

myss37ts  于 2023-05-26  发布在  其他
关注(0)|答案(2)|浏览(187)

我在SQL Server中有一个表,其中填充了一些编码错误的字符。当我有了消息来源时,我发现消息来源也有问题。我没有正确编码的数据(即正确的表达)。我希望编码系统之间存在一对一的关系,这样我就可以解码字符并找到正确的编码。
到目前为止,我部分能够编码,但它显然是错误的,例如,见下文,
Autã³Noma De Ciudad Juã¡Rez -> Auta3Noma De Ciudad Jua!Rez
Plutarco Elías Calle -> Plutarco ElA-as Calles
Tecnolã³Gico -> Tecnola3Gico
我在R中做了这个,

iconv('Gálvez Quiñones', to='ASCII//TRANSLIT')
[1] "GA!lvez QuiA?ones"

如你所见,我还没有成功。你认为在R、Python或SQL Server中正确编码这些错误编码的字符是可行的吗?

owfi6suc

owfi6suc1#

这是一个部分的解决方案,即。它不能很好地处理/修复某些字符(例如上标-3,反感叹号,A带~)。但它与其他2个工作得很好。我使用了iconv并更改了to编码。

universidades<- c("Autã³Noma De Ciudad Juã¡Rez", 
         "Plutarco Elías Calle", "Tecnolã³Gico", "Gálvez Quiñones")
universidades
    [1] "Autã³Noma De Ciudad Juã¡Rez" "Plutarco Elías Calle"      
    [3] "Tecnolã³Gico"                "Gálvez Quiñones"          
iconv(universidades, to="latin-9")
    [1] "Aut\xe3\xb3Noma De Ciudad Ju\xe3\xa1Rez"
    [2] "Plutarco Elías Calle"                   
    [3] "Tecnol\xe3\xb3Gico"                     
    [4] "Gálvez Quiñones"
jdgnovmf

jdgnovmf2#

虽然这是一个迟来的答复。希望这对其他人有帮助。在Python中,我们可以使用下面的代码

import ftfy
    from unidecode import unidecode
    fixtext = ftfy.fix_text('Autã³Noma De Ciudad Juã¡Rez')
    print(unidecode(fixtext))

相关问题