J'ai une table appelée 'segments' stockée dans une base de données MySQL. La table est encodée UTF-8 (charset utf8, collation utf8_general_ci), et la colonne 'label' contient des chaînes avec accents, comme "Fidèles", "Arrêtés", etc.Chaîne avec des accents dans la table MySQL retournée comme NA dans R (RODBC)
Je interroge cette table en utilisant R, et la package rodbc, avec un simple:
data = sqlQuery(channel = myodbcconnection, query = "SELECT label FROM segments")
Cela se traduira par toutes les chaînes contenant des accents étant remplacées par des valeurs NA. Ce n'est pas seulement les accents qui sont remplacés par les caractères de remplissage. La chaîne entière devient NA.
- Exécution de la requête de MySQL Workbench renvoie les chaînes correctes, donc la table est bien
- fichiers R sont utf-8 codé, d'origine avec encodage UTF-8, etc.
- La connexion ODBC utilise un MySQL ODBC UNICODE pilote
ce qui est encore weirded est que si je lance une mise à jour de la base de données R, avec quelque chose comme:
sqlQuery(channel = myodbcconnection, query = "UPDATE segments SET label = 'Testé et approuvé' WHERE id = 70")
La base de données est mise à jour correctement. Mais si je le sélectionne, il renvoie une valeur NA.
Cela me rend fou. ;-) Toute aide serait grandement appréciée.
J'ai essayé toutes les combinaisons de 'as.is' et' stringAsFactors' (juste au cas où), en vain. –
Je dois aussi ajouter que lorsque je crée ma connexion ODBC avec 'odbcConnect', je spécifie' DBMSencoding = "UTF-8" ' –