我最近开始使用 knitr::spin() 将我的代码快速转换为 html 报告,到目前为止它已经很棒了。
但是,我在尝试在文本或代码部分中包含中文字符时遇到了问题。这是一个简短的例子:
not_working.R
#' # Sample document
#'
#' Some text.
#' 还有汉字。
#+
print("Some text")
print("他喜欢吃炒面")
#'
要生成输出,我使用:
knitr::spin("not_working.R")
字符以下列方式扭曲:
Sample document
Some text.
杩樻湁姹夊瓧銆
print("Some text")
## [1] "Some text"
print("浠栧枩娆㈠悆鐐掗潰")
## [1] "<U+00E4><U+00BB>–<U+013A>–<U+015B><U+0107><U+00AC><U+02D8><U+013A>
<U+0090><U+0083><U+00E7><U+201A>’é<U+0165><U+02D8>"
我曾尝试设置我的语言环境(在脚本和 .Rprofile 中)。
这使我可以在 RStudio 及其控制台输出中显示字符,但不能在上述情况下显示。
我还尝试使用编码进行文件/保存 --> UTF-8
我正在使用 Windows 7。
如果我自己创建 R 笔记本,则不会出现此问题(这似乎表明问题可能出在 .R 到 .md 的转换上)。
以下工作正常:
工作.Rmd
---
title: "R Notebook"
output: html_notebook
---
他喜欢吃炒面
```{r}
print("他喜欢吃炒面")
```
我的最终目标是导入一个(UTF-8 编码的)文本文件,进行分析并显示中间结果,所有这些都在 html 报告中。
有没有办法解决这个问题?
最佳答案
Since knitr 1.21 , knitr::spin()
只接受以 UTF-8 编码的 R 脚本。
关于r - 如何用 knitr::spin 显示/打印汉字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542940/