gpt4 book ai didi

r - 尽管使用 UTF-8,但在 block 内编码会导致字符丢失

转载 作者:行者123 更新时间:2023-12-04 08:23:35 25 4
gpt4 key购买 nike

我有一个用 UTF-8 编码的 Rmd 文件,但是当我编织文件时,R 评估内联和 block 内容缺少一些捷克字符。当我在 block 外键入文本时,一切都很好。从文件中读取相同的文本,我可以正确地生成内联输出,但在 block 内使用打印(printcat)时却不行。我对这种情况完全感到困惑,尤其是 cat 行为。

我在 Windows 上。在控制台中检查编码返回 UTF-8。区域设置为 English_United Kingdom.1252。

---
title: "test"
output: html_document
---
```{r}
txt <- "Čeština funguje"
print(Encoding(txt))
print(txt) # prints incorrectly
```

Čeština funguje # prints correctly
`r txt` # prints incorrectly

```{r}
cat(txt) # prints incorrectly
```

```{r, results='asis'}
line <- readLines("line", encoding = "UTF-8")
print(Encoding(line))
print(line) # prints incorrectly
cat(line) # prints incorrectly
```

`r line` # prints correctly!

enter image description here

附言我知道关于 Windows 上的 R 和编码有很多说法,但尽管我进行了广泛的搜索,但我找不到解决方案并且不完全理解这种行为。我猜我需要设置一些语言环境,但到目前为止我的努力是徒劳的。

最佳答案

之前R supports UTF-8 natively on Windows , 通常,如果你想使用该语言的多字节字符,你必须将语言环境设置为特定语言,例如,如果你想正确地 print()/cat() 捷克语字符。需要在编织发生之前设置语言环境,例如,您可以在 ~/.Rprofile 中设置它:

Sys.setlocale(, 'Czech')

我以前从未使用过捷克语,不确定 'Czech' 是否是一个合适的值,但这就是我的想法(我之前在其他语言上取得过成功)。

关于r - 尽管使用 UTF-8,但在 block 内编码会导致字符丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65382147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com