Je ne sais pas trop comment on dit, unicode, utf8... Bref.
Dans le package brr, il y a cette fonction :
Code : Tout sélectionner
> brr:::greek_utf8
function (letter)
{
if (letter %in% c("mu", "phi", "lambda")) {
return(switch(letter, mu = "µ", phi = "<U+03D5>", lambda = "<U+03BB>"))
}
else {
return(letter)
}
}
Quand je la lance, j'obtiens une lettre grecque:
Code : Tout sélectionner
> brr:::greek_utf8("phi")
[1] "ϕ"
Mais si je copie-colle cette fonction, ça ne marche pas:
Code : Tout sélectionner
> f <- function (letter)
+ {
+ if (letter %in% c("mu", "phi", "lambda")) {
+ return(switch(letter, mu = "µ", phi = "<U+03D5>", lambda = "<U+03BB>"))
+ }
+ else {
+ return(letter)
+ }
+ }
> f("phi")
[1] "<U+03D5>"
Une explication à ça ?
En fait je suis l'auteur de brr, et je n'ai rien fait de spécial (à l'époque j'ai développe lé package sous Linux et il n'y avait pas de problème, là je suis sous Windows).
J'ai pensé à l'option Encoding=UTF-8 dans DESCRIPTION, mais j'ai essayé la fonction f dans un package avec cette option et non ça ne marche pas.