Je lis un fichier via RJDBC à partir d'une base de données MySQL et affiche correctement toutes les lettres dans R (par exemple, נווה שאנן). Cependant, même en l'exportant en utilisant write.csv et fileEncoding = "UTF-8" la sortie ressemble à <U+0436>.<U+043A>. <U+041B><U+043E><U+0437><U+0435><U+043D><U+0435><U+0446>
(dans ce cas, ce n'est pas la chaîne ci-dessus mais bulgare) pour le bulgare, hébreu, chinois et ainsi de suite. D'autres caractères spéciaux comme ã, ç etc fonctionnent bien.Exporter la commande UTF-8 vers .csv dans R
Je suspecte que ce soit en raison de BOM UTF-8, mais je ne l'ai pas trouvé une solution sur le net
Mon OS est un Windows7 allemand.
modifier: J'ai essayé
con<-file("file.csv",encoding="UTF-8")
write.csv(x,con,row.names=FALSE)
et l'équivalent (afaik) write.csv(x, file="file.csv",fileEncoding="UTF-8",row.names=FALSE)
.
Dites-vous que lorsque vous ouvrez le fichier exporté, vous voyez "U + 0436" au lieu de "ж"? Si tel n'est pas le cas, les numéros de code Unicode ne sont pas encodés dans un codage UTF, mais sortent en tant que points de code. Peut-être nous montrer du code comment exactement vous exportez le fichier? – deceze
J'ai ajouté des informations sur la façon dont j'ai exporté le fichier. Et oui, je vois "" au lieu de "ж" –
Voyant "" dans le fichier est ambigu (cela peut même signifier que ces caractères sont réellement en ligne dans ce fichier ou votre éditeur ne peut tout simplement pas les afficher). Vous pouvez soit nous écrire le "ж" dans un fichier et nous dire les valeurs hexadécimales de tous les caractères que le fichier généré contient (ouvrez-le dans un éditeur hexadécimal); OU donnez-nous le code pour reproduire votre problème (bien sûr, nous n'avons pas votre DB, donc créez un vecteur avec les données d'exemple). –