R строка, UTF-8, кодирующая шведскую обработку символов - PullRequest
0 голосов
/ 07 марта 2019

есть проблемы с изменением символов шведского языка в презентабельной форме в 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

затем я использую эту команду:
markets_new = gsub ("", "", markets)

затем в строке появляются странные китайские иероглифы, "Caf 攼 u" "Restauranglunch+ kv 㸴 ll "" Barnomsorgtillagningsk 昼 㸶 k "" Folkh 㸶 㸶 gskola "

Я попытался изменить настройку 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> это сшляпа, <e4> - это, <f6> - это, а <e5> - это
Есть какие-нибудь предложения по лечению?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Благодаря @Wiktor Stribiżew это решение работает лучше всего:

df$m <- gsub(" ", "", `Encoding<-`(as.character(df$m), "latin1"),fixed = TRUE) 
0 голосов
/ 07 марта 2019

попробуйте

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

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