大佬教程收集整理的这篇文章主要介绍了R 脚本中的 ASCII 字符 - 尽管编码为 UTF-8,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 windows 10、R 4.0.3 和 Rstudio 1.4.1103
我有一个脚本(由开发人员编写),其输出是 txt 中的一种树形图。这段代码是:
for (index in seq_len(nrow(filE))) {
write(paste0(path,if (index == nrow(filE)) '└' else '├','──',file[index,'name']),tree_filename,append = TRUE)
newPath = if (index == nrow(filE)) paste0(path,' ') else paste0(path,'│ ')
treefunction(file[index,ID_column_header],newPath)}
字符 │ 和 └ 在输入代码时在 Rstudio 中正确显示。但是,当函数的输出保存在 .txt 中时,这些字符对我来说变成了 + 和 -,而对于开发人员来说,一切都完美无缺(请参见下图,两种输出)。
到目前为止我尝试过的:我在 .RProfile 中设置了 utf-8,而 .txt 文件 is 以 utf-8 编码(我已经检查过)。
开发人员正在使用 linux(我不确定是哪个版本)。 有人可以帮我解决我应该做的事情吗,这样└类型的字符就可以正常显示了吗? 非常感谢。
首先,我很同情你。在 Windows 上编码是一场噩梦。 R Core 团队中有一个名叫 Tomas Kalibera 的人正在努力解决这个问题。大概在接下来的一年左右,它会得到很大的改善。 Here 是一个链接,解释了他将如何修复它。
其次,我认为您现在可以通过对编写字符串的方式进行一些更改来解决您的问题:
使用 Unicode 字符代码而不是直接字符串。这些代码被称为“盒子绘图代码”。可以在 here 中找到完整列表和更多信息。
使用 encoding = 'native.enc'
在 writeLines
选项中使用 write
而不是 useBytes = TRUE
。
这是一个例子:
f <- file("test.txt",open = "w",encoding = "native.enc")
writeLines("\U251C\U2500\U2500 Herr Dvorek Frank von Lakatos",f,useBytes = TRUE)
writeLines("\U2502 \U2514\U2500\U2500 Dr Maria Lakatos",useBytes = TRUE)
close(f)
Notepad++ 中的结果如下所示:
我和你在同样的环境中工作。所以我认为这应该可行。
如果您需要重新读入文件,请使用:
@H_578_7@mylines <- readLines("test.txt",encoding = "UTF-8")
以上是大佬教程为你收集整理的R 脚本中的 ASCII 字符 - 尽管编码为 UTF-8全部内容,希望文章能够帮你解决R 脚本中的 ASCII 字符 - 尽管编码为 UTF-8所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。