R 当标题部分包含CJK字符时,编译帮助索引失败

R 当标题部分包含CJK字符时,编译帮助索引失败,r,utf-8,cjk,R,Utf 8,Cjk,我正在做一个自己的R包。但是,我在使用包帮助时遇到编码问题 为了记录在案,我需要用中文编写软件包帮助。我根据编写R扩展的文档,使用以下附加设置编写.Rd文件: 将\encoding{utf-8}添加到每个.Rd文件的第一行 将.Rd文件保存为utf-8编码,无BOM 结果如下: +RStudio的帮助窗口中正确识别说明部分中的CJK字符。 +如果标题部分中有CJK字符,则R编译器将失败,并显示以下消息: *** installing help indices Error in gsub("&

我正在做一个自己的R包。但是,我在使用包帮助时遇到编码问题

为了记录在案,我需要用中文编写软件包帮助。我根据编写R扩展的文档,使用以下附加设置编写
.Rd
文件:

  • \encoding{utf-8}
    添加到每个
    .Rd
    文件的第一行
  • .Rd
    文件保存为utf-8编码,无BOM
结果如下: +RStudio的帮助窗口中正确识别
说明
部分中的CJK字符。 +如果
标题
部分中有CJK字符,则R编译器将失败,并显示以下消息:

*** installing help indices
Error in gsub("&", "&", x, fixed = TRUE) :
  invalid multibyte string at '<84> <74>op k €'
***安装帮助索引
gsub(“&”,“&;”,x,fixed=TRUE)中存在错误:
“op k€”处的多字节字符串无效
我认为R的国际文件是必要的。有人对此有经验吗?

install.r中有两个修复程序

  • htmlize()中为
    gsub()添加
    useBytes=T
  • .writepkgindes()
    中,将
    encoding='UTF-8'
    添加到
    outcon

R-devel邮件列表。是最有知识的人在编码和包构造方面有交叉知识的地方。他们通常期望有更多的代码。他们可能会要求您使用命令行调用R CMD解释器。如果编写R扩展文档,国际化部分的第一句话会说:“有一些机制可以转换R和C级错误和警告消息。只有在使用NLS支持编译R时才可用(这是由配置选项--enable NLS请求的,默认设置)。”阅读其余部分。我的意思是用CJK字符编写.Rd文档,而不是消息翻译。好吧,我想用CJK立即获取你的.Rd文档需要同样的准备,但正如我所说的。。。真正知道的人都在r-devel上。如果你没有读完那一节,他们会炒你鱿鱼。和邮政编码。并报告试图从命令行运行的错误消息。(到目前为止,您还没有在这里完成任何操作。)好的,我已经通过在
工具
包中进行一些更改来解决这个问题。我相信他们中的大多数都是“bug”,或者至少没有得到正确的处理。通过向R-devel邮件列表报告您的更改,您可能会对您的同胞做出有益的贡献