【问题标题】:How to process UTF-8 characters for an ioslides_presentation generated with rmarkdown如何为使用 rmarkdown 生成的 ioslides_presentation 处理 UTF-8 字符
【发布时间】:2021-02-15 00:48:18
【问题描述】:

我试图在使用 rmarkdown 生成的 ioslides_presentation 中显示特殊字符,但在我的最终幻灯片中,我总是得到 而不是 Δ。 当我执行单个 R 块时,它会正确存储 Δ。 如何确保使用 rmarkdown 正确处理 UTF-8 字符?


title: "未命名" 作者:“K” 日期:“2 11 2020” 输出:ioslides_presentation

Δendo=ΔEC


test <- c("Δendo", "ΔEC")

test

encoding fail

【问题讨论】:

    标签: r utf-8 r-markdown


    【解决方案1】:

    值得一读:9.2 Essentials of text data [Neth, H. (2020)。 ds4psy:心理学家的数据科学]

    R 允许输入 Unicode 字符,方法是输入 backslash 作为转义字符 \u...\U...... 代表 4 位十六进制代码。
    我们可以使用 knitr 包的 asis_output() 函数在 R Markdown 文档中显示 Unicode 字符/符号:

    ---
    title: "Untitled" 
    author: "K" 
    date: "2 11 2020" 
    output: ioslides_presentation
    ---
    
    ## Teste
    
    ```{r teste, echo = FALSE}
    test <- knitr::asis_output(c("\u0394endo", "\u0394EC"))
    test
    ```
    
    ## Teste 1
    
    ```{r teste1, echo = FALSE}
    test1 <- knitr::asis_output("\u0394endo=\u0394EC")
    test1
    ```
    
    ## Embed into inline chunk
    
    - We can directly embed into inline chunk the `knitr::asis_output()` function:  
    - When I execute the individual R chunk it stores `r knitr::asis_output("\u0394")` correctly.  
    - `r knitr::asis_output("\u0394endo=\u0394EC")`
    

    【讨论】:

    • 感谢您的回答!它适用于我的示例中的简单向量。你知道如何将它应用到数据框吗?
    • 您可以开始(在控制台中)运行readr::default_locale() 函数来查看您的默认编码是什么。
    • 那么,在readr::read_csv()utils::read.csv()中读取(和写入)时,可以在locale/fileEncoding参数中指定UTF-8。
    • 例如:Myfile&lt;- readr::read_csv(file = "file.csv", locale = readr::locale(encoding = "UTF-8"))Myfile&lt;- utils::read.csv(file = "file.csv", header = TRUE, fileEncoding = "UTF-8")
    • 顺便说一句,如果您在 Windows 上设置“默认文本编码”选项:工具 > 全局选项... > 代码 > 保存 > 默认文本编码:> 更改... > UTF-8 >申请
    猜你喜欢
    • 1970-01-01
    • 2013-04-22
    • 2020-08-31
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多