R中的UTF-8文件输出

我在Windows 7 64位上使用R 2.15.0。我想将unicode(CJK)文本输出到文件。


以下代码显示了发送给UTF-8文件连接写的Unicode字符如何无法按预期的方式工作:


rty <- file("test.txt",encoding="UTF-8")

write("在", file=rty)

close(rty)

rty <- file("test.txt",encoding="UTF-8")

scan(rty,what=character())

close(rty)

如扫描输出所示:


Read 1 item 

[1] "<U+5728>"

该文件不是用UTF字符本身编写的,而是某种与ANSI兼容的备用。我可以使它第一次正确工作(例如,使用带有“在”的文本文件),还是可以工作一些额外的魔术来用适当的字符替换代码字符串将输出转换为Unicode?


谢谢。


[更多信息:相同的代码在Cygwin R 2.14.2中正常运行,而Win7上的2.14.2也已损坏。这是我那边的地方吗?]


RISEBY
浏览 1099回答 3
3回答

函数式编程

将UTF-8字符串保存在文本文件中:kLogFileName <- "parser.log"log <- function(msg="") {&nbsp; con <- file(kLogFileName, "a")&nbsp; tryCatch({&nbsp; &nbsp; cat(iconv(msg, to="UTF-8"), file=con, sep="\n")&nbsp; },&nbsp; finally = {&nbsp; &nbsp; close(con)&nbsp; })}
打开App,查看更多内容
随时随地看视频慕课网APP