环境:
Mac OS 10.8.2 上的 R v. 2.15.1,平台 x86_64-apple-darwin9.8.0/x86_64(64 位),RStudio IDE 设置为使用 UTF-8 作为其默认编码。该操作系统还使用 UTF-8。
> Sys.getlocale(category = "LC_ALL")
[1] "sk_SK.UTF-8/sk_SK.UTF-8/sk_SK.UTF-8/C/sk_SK.UTF-8/sk_SK.UTF-8"
客观的:
从 R HTML (.Rhtml) 文件生成 HTML 文件,其中包含带有扩展拉丁字符的绘图,例如 š 或 č。
问题:
当我单击Knit HTML时,输出如下所示:
plot(1:2, main = "šč")
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
##
## Warning: conversion failure on 'šč' in 'mbcsToSbcs': dot substituted for
## <8d>
**Plot with correct characters despite the warnings.**
问题:
是什么导致了问题以及如何解决?我怎样才能至少摆脱结果文件中显示的警告?
绝望的笔记:
在过去的一两个小时里,我一直在寻找解决方案,发现了许多类似的案例并尝试了许多不同的潜在解决方案(许多与 PDF 输出相关,如果我只使用 Sweave,它就会以同样的方式出现),现在我真的绝望。
2012 年 11 月 9 日编辑:
使用Encoding()
@metasequoia 建议的解决方案确实有效,但考虑到也需要打印代码,最好没有该功能,我更喜欢@nograpes 使用该功能提供的解决方案pdf.options()
。
有趣的是,虽然
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
plot(cars, main="Ťažký")
end.rcode-->
产生相同的警告,
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
<!--begin.rcode
plot(cars, main="Ťažký")
end.rcode-->
按预期工作。这是为什么?我认为在 R 中运行命令时,年表才是最重要的。
所以,我的目的的明确解决方案是把
<!--begin.rcode echo="FALSE"
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
在我的每个代码的开头。