2010-08-10 4 views
1

quand je tente de courir:mysql apparaissent comme  € ™

mysql -u myUser -pPassword -D myDatabase -h myHost < toInsert.sql 

de mon bureau ubuntu où Myhost est un serveur distant Red Hat et toInsert.sql contient ils apparaissent comme ’

Comment puis-je résoudre ce problème?

Remarque! ne sont pas les mêmes que '

Quand je lance toInsert.sql à partir d'une machine Windows avec un client mysql Je n'ai IUG pas ce problème.

Merci

+0

ressemble à un problème de codage de caractères, pourrait même être simplement dans le terminal. – JKirchartz

Répondre

2

--default-character-set=utf8 a fixé il

donc

mysql -u myUser -pPassword -D myDatabase -h myHost --default-character-set=utf8 < toInsert.sql

merci pour l'aide!

+0

Vous devez marquer la réponse la plus utile acceptée. – BalusC

+0

J'ai dû attendre 24 heures pour le faire, cela a été mandaté par stackoverflow.com Je serais ravi de voter pour les deux autres mais je n'ai pas encore assez de représentant. Dans le but d'aider les autres, j'ai posté le correctif que j'ai trouvé après avoir lu la page de manuel mysql. – user401090

1

On dirait que vous avez le code obtenu qui est confus au sujet encodages. Définissez le codage des données de chaîne dans la base de données (je recommande UTF-8, mais tout fonctionnera tant que vous êtes cohérent) et assurez-vous que tous les outils que vous utilisez avec lui le réalisent.

Et "’" est un "" lorsque les octets de données UTF-8 sont réinterprétés comme ISO 8859-1.

+0

Nous vous remercions de votre aide! Cela m'a aidé à trouver la solution! – user401090

1

Il y a deux endroits ce problème pourrait être:

D'abord, vous devez vérifier que le codage sur tout dans votre base de données est UTF-8.

Si cela ne résout pas le problème, votre base de données est peut-être correcte, mais votre console ne peut pas afficher les caractères UTF-8. Pipe la sortie d'une requête dans un fichier et l'affiche dans quelque chose qui peut afficher les caractères UTF-8 et voir si cela semble correct. Si cela semble correct, alors le problème est votre terminal.

+0

hmm, bien, j'ai exécuté ce ... "mysql> SHOW VARIABLES LIKE 'character \ _set \ _%';" et je reçois: character_set_client: latin1, character_set_connection: latin1, character_set_database: utf8, character_set_filesystem: binaire, character_set_results: latin1, character_set_server: latin1, character_set_system: utf8 est-ce que ça pourrait être le tour du latin1? Mais peu importe, je ne suis pas vraiment libre de les changer. Et mon terminal montre les caractères bien. Mais bizarrement, la nuit dernière (à la maison du travail) je l'ai essayé à travers des tunnels ssh inverse et cela a fonctionné. – user401090

+0

Nous vous remercions de votre aide! Cela m'a aidé à trouver la solution! – user401090

Questions connexes