【问题标题】:Best way to fix encoding UTF-8 in my function's package R在我的函数包 R 中修复编码 UTF-8 的最佳方法
【发布时间】:2018-10-27 13:18:54
【问题描述】:

我尝试处理我的 R 包的 UTF-8 编码。我在 Windows 上的 R 版本是 3.4.4

我的包由一些带有控制台打印和 图谁需要编码 UTF 8(法语)。

我尝试在我的 R 脚本中添加这一行(在包含我的函数的脚本的开头和我的函数中),但打印是这样的 "Répartition de la différence"

Sys.setlocale("LC_CTYPE","french")
options(encoding = "UTF-8")

在另一个脚本中,加载我的包后,我也添加了这几行,但我有同样的编码问题......

有什么想法吗?

【问题讨论】:

  • 预期输出是什么?
  • 如果 A 是您的名称列,则使用 E​​ncoding(A)
  • @OliverFrost:我想在我的输出字符串中使用如下编码:"Répartition de la différence" 而不是"Répartition de la différence"。
  • @Prany :这不是数据框。编码指的是控制台中打印的字符串或图形中的文本(title/xlab/ylab)。
  • 嗨。您是否遇到过解决此问题的方法?我也有很多非 ascii 字符的包。在极少数情况下,安装失败并且字母被打乱,但后来我尝试了其他安装方式,一切正常。但最好知道变量是什么。

标签: r function encoding package


【解决方案1】:

您可以在您的说明文件中添加一行指定编码:UTF-8。

https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Character-encoding-issues

如果DESCRIPTION文件不完全是ASCII,它应该包含一个 “编码”字段指定编码。这用作编码 描述文件本身以及 R 和 NAMESPACE 文件,以及 作为 .Rd 文件的默认编码。示例假定为 在运行 R CMD 检查时在此编码中,它用于 CITATION 文件的编码。仅编码名称 latin1、latin2 和 众所周知,UTF-8 是可移植的。 (不要指定编码,除非一个 实际上是需要的:这样做会使包的便携性降低。如果一个 包具有指定的编码,您应该运行 R CMD build 等 使用该编码的语言环境。)

如果它解决了您的问题,请告诉我。

【讨论】:

  • 谢谢!当我添加这一行时,它解决了控制台中打印编码的问题,但没有解决图形中的编码问题(标题/xlal/ylab)。我不明白如何使用您的链接修复编码(在命名空间中)。
  • 你用什么函数来绘图?
  • 我使用 ggplot 函数:g<- ggplot(df,aes=(x,y)) + labs(title="Encoding UTF-8",y="Fréq") print(g)
  • 您可能需要转义那些字符?见stackoverflow.com/questions/13819972/…stackoverflow.com/a/38202460/1989480。即需要将options(encoding = "UTF-8") 添加到您的.onAttach.onLoad 函数中
  • 没有办法在 title 或 ylab 中强制编码?我也尝试添加Sys.setlocale("LC_CTYPE","french"),但它不起作用..
猜你喜欢
  • 2010-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 2015-06-05
相关资源
最近更新 更多