You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在R语言中将CSV文件中的俄文乱码地区名转为英文?

解决R语言中CSV俄文乱码并转为英文的方案

嘿,我之前也碰到过这种俄文CSV乱码的问题,咱们一步步来搞定它:

第一步:先修复乱码,还原正确的俄文

你看到的「СвердловÑÐºÐ°Ñ Ð¾Ð±Ð»Ð°Ñть」这种乱码,是典型的编码不匹配导致的 mojibake(字符错乱)——大概率是你的CSV文件本身用UTF-8编码保存,但读取时错误用了russian(即Windows-1251)解码,反过来就出现了乱码。

试试这两种方法修复:

  1. 直接用UTF-8编码重新读取文件
df <- read.csv(file.choose(), sep = ',', header = TRUE, encoding = "UTF-8", stringsAsFactors = FALSE)
  1. 如果上面的方法没用,就把已读取的乱码字符串反向转码(把Windows-1252解码的内容转回UTF-8)
    假设你的地区名称列叫region,执行:
df$region <- iconv(df$region, from = "Windows-1252", to = "UTF-8")

执行完这步,你应该能看到正常的俄文地区名称了。

第二步:将俄文转为英文

修复完乱码后,有两种常用的方式转成英文:

方式1:手动映射(适合地区数量少的情况)

如果你的CSV里的俄罗斯地区名称不多,可以自己创建一个俄英对照的字典,直接替换:

# 先把你修复后的俄文名称和对应的英文填进去
region_dict <- c(
  "Свердловская область" = "Sverdlovsk Oblast",
  "Личные вещи" = "Personal Items" # 示例,根据你的实际内容调整
)
# 生成英文列
df$region_en <- region_dict[df$region]

方式2:用API自动翻译(适合大量地区名称)

如果地区数量多,推荐用谷歌翻译的API,借助googleLanguageR包实现:

  1. 先安装并加载包:
install.packages("googleLanguageR")
library(googleLanguageR)
  1. 你需要先去谷歌云平台申请翻译API的密钥(免费额度足够小项目用),然后加载密钥:
gl_auth("你的API密钥文件路径.json") # 或者设置环境变量Sys.setenv(GOOGLE_APPLICATION_CREDENTIALS = "路径")
  1. 执行翻译:
# 把region列的俄文翻译成英文,生成新的region_en列
df$region_en <- gl_translate(df$region, target = "en", source = "ru")$translatedText

如果不想用谷歌API,也可以试试translateR包(支持微软Azure翻译API),操作逻辑类似。


内容的提问来源于stack exchange,提问作者Nikhil

火山引擎 最新活动