【发布时间】:2021-11-20 14:25:50
【问题描述】:
我正在尝试使用 Rmarkdown 呈现一个 .docx 文件,该文件在数据框中包含俄语字符
---
params:
title: "Encoding Issue"
output:
bookdown::word_document2:
reference_docx: Word_template.docx
classoption: a4paper
always_allow_html: yes
lang: ru
---
```{r data}
df <- data.frame(x =
c("Не хватка медикаментов",
"Далеко ехать",
"Опасность на дорогах к мед.учереждению",
"Only one family physician")
)
Encoding(df$x) <- "UTF-8"
```
```{r cat}
cat(df$x)
```
�� ������ ������������ ������ ����� ��������� �� ����� �� ���.������������只有一位家庭医生
```{r print}
print(df$x)
```
[1] "\xcd\xe5\xf5\xe2\xe0\xf2\xea\xe0\xec\xe5\xe4\xe8\xea\xe0\xec\xe5\xed\xf2\xee\xe2"
[2] "\xc4\xe0\xeb\xe5\xea\xee\xe5\xf5\xe0\xf2\xfc"
[3] "\xce\xef\xe0\xf1\xed\xee\xf1\xf2\xfc\xed\xe0\xe4\xee\xf0\xee\xe3\xe0\xf5\xea\xec\xe5\xe4.\ xf3\xf7\xe5\xf0\xe5\xe6\xe4\xe5\xed\xe8\xfe" [4] “只有一位家庭医生”
渲染的 .docx 文件将打印结果显示为
[1] " "
[2]“"
[3]“ . " [4] “只有一位家庭医生”
Sys.getlocale() 是
“LC_COLLATE=Russian_Russia.1251;LC_CTYPE=Russian_Russia.1251;LC_MONETARY=Russian_Russia.1251;LC_NUMERIC=C;LC_TIME=Russian_Russia.1251”
编码问题的根源可能在哪里?有什么方法可以正确渲染 .docx 文件并使用正确的字符?
Не хватка медикаментов Далеко ехать Опасность на дорогах к мед.учереждению 只有一位家庭医生
我也试过Sys.setlocale("LC_CTYPE", "English")。 .docx 模板设置为“UTF-8”。 rmarkdown 也设置为options(encoding = "UTF-8")。
【问题讨论】:
-
如果您使用
cat而不是print,它是否正确呈现?顺便说一句,我记得遇到过仅在 Windows 上发生的类似问题。
标签: r encoding r-markdown rendering .doc