我已经创建了一个脚本,用于将Unicode转换为中文字符。在temp.df[,"name_unicode"]
中的最后一个字符串是"§®£"(不带引号),这样那些不懂中文的人也可以帮助。
library(RODBC)
library(Unicode)
temp.df <- data.frame(name_unicode=c("陳大文",
"陳小敏",
"陳一山",
"§®£"),
stringsAsFactors=FALSE)
temp.df[,"name_unicode_mod"] <- sapply(temp.df[,"name_unicode"],
function(x) {
temp <- unlist(strsplit(x,";"))
temp <- sprintf("%x",as.integer(gsub("[^0-9]","",temp)))
temp <- intToUtf8(as.u_char_range(temp))
return(temp)
})
write.csv(temp.df,file("test.csv",encoding="UTF-8"),row.names=FALSE)
temp.df[,"name_unicode_mod"]
的输出在R控制台上是OK的。但我需要以csv
或xls
格式将它们导出。我尝试使用write.csv
, write.table
, RODBC
中的odbcConnectExcel
,但所有这些都给我一些像<U +00A7><U +00AE><U +00A3>
的东西。
有人能帮忙吗?谢谢。
附:我正在使用R 3.0.0和Win7。
write.table
函数中使用encoding
参数吗? - Ricardo Saportaout <- file("test.txt", "w", encoding="UTF-8");write.table(temp.df, out, row.names=FALSE);close(out)
,但仍然失败。 - lokheart