问题描述
我想在R:обезпечен
中解码此字符串。所需的输出应为:обезпечен
此site建议源编码为UTF-8
,应将其转码为Windows-1251
。所以我尝试没有成功:
> word <- "обезпечен"
> iconv(word,from = "UTF-8",to = "Windows-1251")
[1] "обезпечен"
解决方法
这些步骤似乎可以解决问题
word <- "обезпечен"
xx <- iconv(word,from="UTF-8",to="cp1251")
Encoding(xx) <- "UTF-8"
xx
# [1] "обезпечен"
target <- "обезпечен"
xx == target
# [1] TRUE
所以看来发生了什么事,在某一时刻,构成UTF-8 target
值的字节被误解为cp1251编码,并且某个地方运行了一个进程,基于cp1251将字节转换为UTF-8 -> UTF-8映射规则。但是,当您对不是真正由cp1251编码的数据运行此命令时,会得到奇怪的值。
iconv(target,from="cp1251",to="UTF-8")
# "обезпечен"