Rhtml: Ostrzeżenie: błąd konwersji w „<var>” w „mbcsToSbcs”: kropka zastąpiona <var>
Środowisko:
R v 2.15.1 na Mac OS 10.8.2, platforma x86_64-apple-darwin9.8.0 / x86_64 (64-bit), z RStudio IDE ustawionym na używanie UTF-8 jako domyślnego kodowania. System operacyjny korzysta również z 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"
Cel:
Wygeneruj plik HTML z pliku R HTML (.Rhtml), zawierający wykres z rozszerzonymi znakami łacińskimi, takimi jak š lub č.
Problem:
Kiedy klikamKnit HTML, wyjście wygląda tak:
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.**
Pytanie:
Co powoduje problem i jak go rozwiązać? Jak mogę przynajmniej pozbyć się ostrzeżeń, które pojawiają się w wynikowym pliku?
Beznadziejna uwaga:
Szukałem rozwiązania przez ostatnią godzinę lub dwie, znalazłem wiele podobnych przypadków i wypróbowałem wiele różnych potencjalnych rozwiązań (wiele z nich związanych z wyjściem PDF, które jest podkręcone w ten sam sposób, jeśli używam tylko Sweave), a teraz jestem dosłownie beznadziejny.
Edytuj w dniu 9 listopada 2012 r .:
Rozwiązanie za pomocąEncoding()
zasugerowany przez @metasequoia działa, ale biorąc pod uwagę konieczność drukowania kodu, najlepiej bez tej funkcji, wolę rozwiązanie dostarczone przez @nograpes przy użyciu funkcjipdf.options()
.
Ale to ciekawe
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
plot(cars, main="Ťažký")
end.rcode-->
generuje te same ostrzeżenia,
<!--begin.rcode
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
<!--begin.rcode
plot(cars, main="Ťažký")
end.rcode-->
działa zgodnie z oczekiwaniami.Dlaczego? Pomyślałem, że chronologia to wszystko, co ma znaczenie przy uruchamianiu poleceń w R.
Zatem zdecydowanym rozwiązaniem dla moich celów jest postawienie
<!--begin.rcode echo="FALSE"
pdf.options(encoding='ISOLatin2.enc')
end.rcode-->
na początku każdego z moich kodów.