J’ai une table de firebase database contenant des chaînes suédoises / norvégiennes.
Lorsque j’interroge certaines données, je reçois des résultats comme ceci:
set names latin1;
+-----------------------------------+ | name | +-----------------------------------+ | Kid Interi##### | | Bwg Homes | | If Skadef####kring | | Jangaard Export | | Nordisk Film | +-----------------------------------+
Maintenant, si je mets les set names utf8;
pour voir les caractères avec leur encodage correct, alors le formatage de la sortie tabulaire de la ligne de commande MySQL est rompu.
set names utf8;
+-----------------------------------+ | name | +-----------------------------------+ | Kid Interiør | | Bwg Homes | | If Skadeförsäkring | | Jangaard Export | | Nordisk Film | +-----------------------------------+
Ce n’est pas un gros problème mais cela rend la sortie un peu plus difficile à lire. Quelqu’un sait-il comment conserver le formatage tabulaire intact?
Démarrer le client avec l’option --default-character-set=utf8
.
mysql --default-character-set=utf8
Cela force les variables character_set_client
, character_set_connection
et character_set_results
à utf8.
Plus d’informations sur les jeux de caractères de connexion ici .
Vous pouvez le définir comme option par défaut dans votre fichier my.cnf
, dans la section [mysql]
à inclure automatiquement chaque fois que vous invoquez le client mysql.
[mysql] default-character-set=utf8
Ces mots “ø ö ä” avec utf8 prennent 2 octets, alors avez-vous oublié d’utiliser wchar ou utf ssortingng?
Voici mon code de test en python:
s = ["Kid Interiør","Bwg Homes","If Skadeförsäkring"] for w in s: print '|',w.ljust(20,' '),'|'
le résultat est identique à celui de votre programme. tout ce que je dois faire est de changer l’encodage de la chaîne s
:
s = [u"Kid Interiør",u"Bwg Homes",u"If Skadeförsäkring"] for w in s: print '|',w.ljust(20,' '),'|'
le résultat est
| Kid Interiør | | Bwg Homes | | If Skadeförsäkring |
Je n’ai pas testé en c ++, mais je suggère que vous puissiez utiliser wchar, std :: wcout.