R字符串,UTF-8编码瑞典语字符处理

时间:2019-03-07 09:06:35

标签: r string utf-8 gsub

在R中以一种可表现的方式更改瑞典字符äöå的问题
我直接从MS SQL数据库中获取了数据
这是例子

markets <- c("Caf\xe9                          ","Restaurang kv\xe4ll              ","Barnomsorg tillagningsk\xf6k     ","Folkh\xf6gskola                  ")

然后我使用gusb删除左侧空间

market=gsub(" ", "", markets,fixed = TRUE)

我收到此错误:
gsub(“”,“”,market,fixed = TRUE)中的错误:
  输入的字符串3无效的UTF-8

然后我使用以下命令:
   market_new = gsub(“”,“”,市场)

然后字符串中有奇怪的汉字, “咖啡厅” “ Restauranglunch + kv攼㸴ll” “ Barnomsorgtillagningsk昼㸶k” “民间文学艺术”

我尝试通过以下方法更改Rstudio的默认设置: https://yihui.name/en/2018/11/biggest-regret-knitr/?fbclid=IwAR2E5Lp0zjS51fcdjgZ1tej0sg5EBxfG8sNitt-cUA2XEshnT3lNCHNQ3Do

这没有帮助,也曾尝试使用gsub()替换字符,但似乎无法正常工作。

还有一件事,如果我使用

write.csv(markets,'submarket product view.csv',row.names = F)

然后在我的csv文件中看到如下内容

"Caf<e9>                          "
"Restaurang kv<e4>ll              "
"Barnomsorg tillagningsk<f6>k     "
"Folkh<f6>gskola                  "
"Sm<f6>rg<e5>s/salladsrestaurang     " 

我认为<e9>是带帽子的e,<e4>是ä,<f6>是ö,<e5>是å
有治疗建议吗?

2 个答案:

答案 0 :(得分:0)

尝试

Encoding(markets) <- "UTF-16"
markets <- trimws(markets)

#[1] "Café" "Restaurang kväll" "Barnomsorg tillagningskök" "Folkhögskola"  

答案 1 :(得分:0)

感谢@WiktorStribiżew 此解决方案效果最佳:

df$m <- gsub(" ", "", `Encoding<-`(as.character(df$m), "latin1"),fixed = TRUE)