r - 如何用 knitr::spin 显示/打印汉字

标签 r character-encoding knitr non-ascii-characters chinese-locale

我最近开始使用 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/

相关文章:

javascript - Angularjs:-如何在angularjs中生成阿拉伯语url

r - 错误 : Must supply a symbol or a string as argument

r - rmarkdown : workaround 中的采购引用

r - ggplot2 geom_boxplot 的用户定义参数

r - 在 R 中编写每列具有不同小数位数的数据框

r - 从模型性能计算中排除缺失值

c++ - 我应该如何正确使用 g++ 的 -finput-charset 编译器选项来编译非 UTF-8 源文件?

r - 如何推断超出传递给 `ksmooth` 的 x 点?

ruby - 相同的字符串,不同的编码,但在 Ruby 中不相等

r - "' knitr ' not found"打包/小插图构建期间的错误