以下是显示问题的代码:
myPath = getwd()
cat("abcd", append = T, file =paste(myPath,"temp1.html", sep = "\\")) # This is fine
cat("<BR/><BR/><BR/>", append = T, file =paste(myPath,"temp1.html", sep = "\\")) # This is fine
cat("שלום", append = F, file =paste(myPath,"temp1.html", sep = "\\")) # This text gets garbled when the html is opened using google chrome on windows 7.
cat("שלום", append = F, file =paste(myPath,"temp1.txt", sep = "\\")) # but if I open this file in a text editor - the text looks fine
# The text in the HTML folder would look as if I where to run this in R:
(x <- iconv("שלום", from = "CP1252", to = "UTF8") )
# But if I where to try and put it into the file, it wouldn't put anything in:
cat(x, append = T, file =paste(myPath,"temp1.html", sep = "\\")) # empty
修改 我也尝试过使用以下编码(没有成功)
ff <-file(paste(myPath,"temp1.html", sep = "\\"), encoding="CP1252")
cat("שלום", append = F, file =ff)
ff<-file(paste(myPath,"temp1.html", sep = "\\"), encoding="utf-8")
cat("שלום", append = F, file =ff)
ff<-file(paste(myPath,"temp1.html", sep = "\\"), encoding="ANSI_X3.4-1986")
cat("שלום", append = F, file =ff)
ff<-file(paste(myPath,"temp1.html", sep = "\\"), encoding="iso8859-8")
cat("שלום", append = F, file =ff)
有什么建议吗?感谢。
答案 0 :(得分:1)
问题不在于R(R正确生成UTF-8编码输出)...只是在没有明确指定的编码的情况下,您的Web浏览器采用了错误的编码。只需使用以下代码段(来自R内部):
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
שלום
</body>
</html>
这指定了正确的编码(UTF-8),因此导致浏览器正确地处理以下文本。
答案 1 :(得分:1)
您的代码有点多余。第5行的temp1.txt
是拼写错误(.html
)吗?无论如何,也许你应该在<meta>
标签中设置 charset 。
以此为例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
cat("abcd")
cat("<BR/><BR/><BR/>")
cat("שלום")
cat("שלום")
(x <- iconv("שלום", from = "CP1252", to = "UTF8") )
cat(x)
-%>
</body>
</html>
这是一个brew
代码,因此如果您继续brew
它,您将得到正确的答案。长话短说,关键字是 charset 。
答案 2 :(得分:1)
以这种方式试试
cat("abcd", file = (con <- file("temp1.html", "w", encoding="UTF-8"))); close(con)