【发布时间】:2026-02-17 19:25:01
【问题描述】:
我的数据集包含很多姓氏。这些姓氏由变音符号和其他特殊字符(如 č、á、ñ 等)组成。
通过以下方式读取数据(使用 encoding = "latin1"),我设法以正确的方式显示变音符号:
read_data <- function(directory,debug=FALSE){
file_list = list.files(path = directory,
pattern = "*.csv",
full.names = TRUE);
df_read = data.frame();
for (filename in file_list){
df_temp = read_delim(filename,
delim=';',
locale = locale(encoding = "latin1"));
if(debug){
print(paste0(c(filename, " : ", dim(df_temp))));
}
df_read = rbind(df_read, df_temp);
}
names(df_read) = make.names(names(df_read))
return(df_read)
}
很遗憾,我无法正确显示其他特殊字符。是否可以使用另一种编码样式或另一种方式来读取包含所有特殊字符的 csv 文件?
【问题讨论】:
-
你为什么不用
encoding = "UTF-8"? -
你需要知道数据的原始编码
-
display the other special characters in a proper way到底是什么意思?你如何展示它们?如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。您确定数据是以 latin1 编码存储的吗?数据从何而来? -
@phiver 因为那样我又失去了变音符号。
-
@Bruno:我将 excel 文件转换为(逗号分隔的)csv 文件。如果我选择编码“UTF-8”,则变音符号和其他特殊字符都显示为“?”或空的白盒子。当我选择编码“latin1”时,只会以这种方式显示其他特殊字符。我读到来自 excel 文件的 csv 是用 latin1 编码的,但这并不能帮助我解决我的问题。