Rhtml: Aviso: falha de conversão em '<var>' em 'mbcsToSbcs': ponto substituído por <var>
Meio Ambiente:
R v. 2.15.1 no Mac OS 10.8.2, plataforma x86_64-apple-darwin9.8.0 / x86_64 (64 bits), com o RStudio IDE configurado para usar o UTF-8 como sua codificação padrão. O sistema operacional também usa o 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"
Objetivo:
Gere um arquivo HTML a partir do arquivo R HTML (.Rhtml), contendo um gráfico com caracteres latinos estendidos, como š ou è.
Problema:
Quando clico emMalha HTML, a saída é assim:
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.**
Questão:
O que causa o problema e como resolvê-lo? Como posso pelo menos me livrar dos avisos que aparecem no arquivo resultante?
Nota sem esperança:
Eu tenho procurado por uma solução nas últimas duas horas, encontrei muitos casos semelhantes e tentei várias soluções potenciais diferentes (muitas relacionadas à saída de PDF, que é levantada da mesma maneira se eu usar apenas Sweave), e agora estou literalmente sem esperança.
Editar em 9 de novembro de 2012:
A solução usandoEncoding()
sugerido por @metasequoia funciona, mas considerando a necessidade de imprimir o código também, de preferência sem essa função, eu prefiro a solução fornecida por @nograpes usando a funçãopdf.options()
.
É interessante, porém, que enquanto
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
plot(cars, main="Ťažký")
end.rcode-->
produz os mesmos avisos,
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
<!--begin.rcode
plot(cars, main="Ťažký")
end.rcode-->
funciona como esperado.Por que é que? Eu pensei que a cronologia é tudo o que importa quando executando comandos em R.
Então, a solução definitiva para meus propósitos é colocar
<!--begin.rcode echo="FALSE"
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
no começo de cada um dos meus códigos.