Я скачал zip-файл из Интернета, используя Windows.
Содержащиеся в файле файлы имеют латинские символы, как на мексиканском веб-сайте: этот , за которым следует нажатие кнопки "Descargar".
Если я извлекаю файлы с помощью Проводника, они правильно отображают имена.
Например, "códigos_postales \ tabla de códigos.txt" с еще несколькими из них. (таблицы почтовых индексов)
Но если я извлечу его через R с помощью unzip("códigos_postales.zip")
(используя RStudio), они будут показаны неправильно.
Например, "c ¢ digos postales \ tabla de c ¢ digos.txt"
Установка кодировок заранее Я пробовал:
zc_list <- unizp("códigos_postales.zip", list = TRUE)
zc_names <- zc_list$Name
Encoding(zc_names) <- "latin1" (also "utf-8" and "Windows-1252")
Но это не показывает их правильно, и в любом случае это не помогает мне извлечь их.
Более того,угадывая кодировку с помощью:
> guess_encoding(zc_names)
ISO-8859-1
ISO-8859-2
> Encoding(zc_names) <- "ISO-8859-1" #(or -2)
> zc_names
...
c¢digos_postales/Tabla de C¢digos Postales.txt
Поэтому я также попытался сначала загрузить их и переименовать позже:
cp_extracted <- unzip("códigos_postales.zip")
for (each_file in cp_extracted) {
file.rename(each_file, each_file %>% str_replace_all("¢", "ó"))
}
Это не работает, и даже стирает файлы, в течение двухпричины:
+ Есть вложенные файлы и папки, которые имеют латинские символы, поэтому переименование должно применяться только к имени файла.
+ В конечном счете, я определил только этот символ "¢" -> "ó", а неуверен, что могут быть другие. И неправильно идентифицировать неправильные символы, если не по общей кодировке.
У меня есть следующие вопросы:
1. Как правильно извлечь zip-файл, чтобы кодировка применялась правильно.
2. Если это невозможно, и мне нужно их переименоватьКак я могу пройтись по файлам и каталогам и заменить каждый из них соответствующим набором идентифицированных латинских символов.
Язык моей машины:
> Sys.getlocale()
[1] "LC_COLLATE=Spanish_Mexico.1252;LC_CTYPE=Spanish_Mexico.1252;LC_MONETARY=Spanish_Mexico.1252;LC_NUMERIC=C;LC_TIME=Spanish_Mexico.1252"
Спасибо.