Как мне перекодировать следующие символы?
Я сохранил CSV в формате, отличном от UTF8, и специальные символы были экранированы, поэтому файл не сломан, но я все еще не могу восстановить исходную кодировку.stringi::stri_enc_detect(str = x)
предполагает, что кодировка ISO-8859-1
,
Я попробовала обычные пакакажи
test_string = "Mar<ed>n: <U+0093> <U+0085> ni<f1>os"
Encoding(test_string ) <- "ISO-8859-1",
iconv(test_string, from="ISO-8859-1", to="UTF-8")
stringi::stri_unescape_unicode(test_string )
Однако ничего из этого не сработало. Любая идея будет высоко ценится!
РЕДАКТИРОВАТЬ: ответить на вопрос самостоятельно для будущих ссылок:
Не совсем тот же вопрос, что и помеченный дубликат, здесь есть дополнительная проблема отсутствия части Юникода, например, это - но это должно быть. Чтобы найти всех, я сначала создал их список:
selected_unicodes = text %>%
map(~stri_match_all_regex(str = .x, pattern = "<[cdef](.*?)>")[[1]][,1]) %>%
unlist(recursive = TRUE) %>%
unique()
а затем зациклил текст, чтобы заменить их один за другим:
for (unicode in selected_unicodes) {
replacement = gsub(">","", gsub("<","\\\\u00",unicode))
text = text %>% str_replace_all(unicode, replacement)
}