How to use UTF-8 characters in dygraph title in R

2019-04-09 04:55发布

问题:

Using Rstudio [Windows8], when I use the dygraph function to plot a time series, I have a problem when trying to use UTF-8 characters in the main title.

library(dygraphs)
dygraph(AirPassengers, main = "Título")

This results in a title: "T?tulo"

I have tried to convert "Título" to the utf-8 enconding, but it doesn't work.

回答1:

You need to make sure your locale settings support the character that you want to use, and that the file is saved with the right encoding. Saving as UTF-8 worked for me.

I was able to replicate your situation in Windows 7 and tried a bunch of things. Embedded in Rmarkdown, here is a minimal working example.

```{r}
Sys.setlocale("LC_ALL","German")
#note that windows locale names are different from unix & mac, usually
#the name of nationality works here.
#also works with "Faroese", "Hungarian", and others who have this letter.
#the locale has to be set in a preceding block to take effect.
```

```{r}
Encoding("Título")
library(dygraphs)
dygraph(AirPassengers, main = "Título")
```

You can try out the encoding given to the title to have with Encoding(). Languages like Faroese, Hungarian, and German encode "Título" as latin or unknown, both of which seem to cause no problems for dygraph's javascript. UTF-8 wrote it as <U+00ED> which was a problem for the javascript, as well as some, but not all other functions. With a matching locale, converting to utf-8 as @Michele recommended has the same result.

Also, if you don't have the title in many places, it is possible to just manually find and replace the title in the html/javascript file that is made. The problem occurs on conversion, but if the file is already made, the title variable can be successfully changed. The letter still has a question mark in Rstudio "Viewer" output, but I recommend making the entire file for javascript regularly, as I've seen other functions malfunction in the viewer window.



回答2:

You can use enc2utf8.

dygraph(AirPassengers, main = enc2utf8("Título"))


标签: r utf-8 dygraphs