J'ai une table dans ma base de données et je veux lancer une requête comme
SELECT column1, column2 FROM my_table WHERE my_condition;
mais je veux que le mysql retourne le column2
en encodage utf8. Est-ce une fonction dans mysql de faire une telle tâche? Qu'est-ce que c'est?
Vous pouvez utiliser CAST et CONVERT pour basculer entre différents types d’encodages. Voir: http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html
SELECT column1, CONVERT(column2 USING utf8)
FROM my_table
WHERE my_condition;
SELECT CONVERT(CAST(column as BINARY) USING utf8) as column FROM table
Une addition:
Lorsque vous utilisez la bibliothèque cliente MySQL , vous devez alors empêcher toute conversion en arrière vers votre jeu de caractères par défaut. (voir mysql_set_character_set()
[1] )
Dans ce cas, utilisez une conversion supplémentaire en binaire:
SELECT column1, CAST(CONVERT(column2 USING utf8) AS binary)
FROM my_table
WHERE my_condition;
Sinon, l'instruction SELECT
est convertie en utf-8, mais votre bibliothèque client la reconvertit en un jeu de caractères de connexion par défaut (potentiellement différent).