Tde*_*eus 5 r character-encoding stringr
我在 csv 导出中的编码方面遇到了困难。我来自荷兰,我们使用相当多的 Trema(例如\xc3\xab, \xc3\xaf)和重音符号(例如\xc3\xa9, \xc3\xb3)等。这会在导出到 csv 并在 Excel 中打开文件时出现问题。
在 macOS Mojave 上。
\n\n我已经尝试了多种编码功能,如下所示。
\n\nlibrary(stringr)\nlibrary(readr)\n\ntest <- c("Argentini\xc3\xab", "Belgi\xc3\xab", "Ha\xc3\xafti")\n\ntest %>%\n stringi::stri_conv(., "UTF-8", "ISO-8859-1") %>%\n write.csv2("~/Downloads/test.csv")\nRun Code Online (Sandbox Code Playgroud)\n\n但是,这仍然会导致奇怪的字符:
\n\n\n\n\n
\n\n\n我如何照顾人们在 Excel 中导入正确的编码..?
\n
不要\xe2\x80\x99t 转换为 iso-8859-1 但以readr::write_excel_csv2(). 它将文件写入为 UTF-8,但带有Excel 可以理解的字节顺序标记 (BOM)。
library(readr)\ntest <- c("Argentini\xc3\xab", "Belgi\xc3\xab", "Ha\xc3\xafti")\nRun Code Online (Sandbox Code Playgroud)\n\n我需要转换test为 UTF-8,因为我在 Windows 上。
test <- enc2utf8(test)\nRun Code Online (Sandbox Code Playgroud)\n\n在 MacOS 上test应该已经是 UTF-8,因为这是本机编码。
Encoding(test)\n#> [1] "UTF-8" "UTF-8" "UTF-8"\nRun Code Online (Sandbox Code Playgroud)\n\n另存为 Excel csv 格式readr::write_excel_csv2()
write_excel_csv2(data.frame(x = test), "test.csv")\nRun Code Online (Sandbox Code Playgroud)\n\n或者另存xlsx为writexl::write_xlsx()
writexl::write_xlsx(data.frame(x = test), "test.xlsx")\nRun Code Online (Sandbox Code Playgroud)\n\n\n