J'utilise MySQL DB et je veux pouvoir lire et écrire des valeurs de données Unicode. Par exemple, les valeurs française / grecque / hébreu. p>
Mon programme client est C # (.NET Framework 3.5). P>
Comment configurer mon dB pour permettre à Unicode? et comment utiliser C # pour lire / écrire des valeurs comme Unicode de MySQL? P>
OK, mon schéma, ma table et mes colonnes sont définis sur 'utf8' + collation 'utf8_general_ci'. J'exécute les "noms de jeu utf8" lorsque la connexion est ouverte. Jusqu'ici tout va bien ... mais, les valeurs toujours sont sauvées comme '??????? ' p>
Des idées? P>
OK, donc pour C # Client pour lire et écrire des valeurs unicode, vous devez inclure dans la chaîne de connexion Par exemple: Server = My_SQL_SERVER; ID utilisateur = my_user; mot de passe = my_password; base de données = quelque_db123; charset = utf8; p>
Bien sûr, vous devez également définir la table pertinente en tant qu'UF8 + Collation UTF8_BIN. p>
4 Réponses :
Vous devez définir la db Charset sur UTF-8 (si vous utilisez UTF-8), CLOSATION DES TABLES / DES DOMAIRES CONCERNÉES AU UTF, Exécutez les noms de jeu 'UTF-8' avant de faire des requêtes, et bien sûr, assurez-vous que Vous définissez le bon codage dans le HTML qui affiche la sortie. P>
Pour la collation, j'ai plusieurs valeurs à sélectionner, comme: UTF_BIN, UTF8_GENERAL_CI, UTF8_UNICODE_CI, etc. Quel est le préféré?
De plus, pouvez-vous donner un exemple de requête SQL pour insérer et sélectionner à l'aide des "noms de jeu"?
La collation indique à MySQL les règles de trier les données par ordre alphabétique, si vous souhaitez prendre en charge une vérification de langue spécifique s'il existe un peu de règles spécifique, utilisez sinon l'un des généraux. Vous n'avez besoin que d'exécuter des noms définis une fois par connexion établie.
Vous devez définir la classement pour votre schéma, tables ou même colonnes MySQL. P>
la plupart du temps, la collation D'autre part, Enfin, Si vous utilisez MySQL's connecteur / net (qui Je recommande), tout devrait se dérouler bien. P> utf8_general_ci code> est utilisée car elle est une comparaison insensible insensible et accentuée. P>
utf8_unicode_ci code> est sensible à la casse et utilise des techniques de tri plus avancées (comme le tri d'eszet ('ß') près de 'SS'). Cette collation est un peu plus lente que les deux autres. P>
utf8_bin code> compare la chaîne en utilisant leur valeur binaire. Ainsi, il est également sensible à la casse. P>
la solution! p>
OK, donc pour C # Client pour lire et écrire des valeurs Unicode, vous devez inclure dans la chaîne de connexion: Charset = UTF8 P>
Par exemple: Server = My_SQL_SERVER; ID utilisateur = my_user; mot de passe = my_password; base de données = quelque_db123; charset = utf8; p>
Bien sûr, vous devez également définir la table pertinente en tant qu'UF8 + Collation UTF8_BIN. p>
Merci, j'ai aussi eu ce problème et votre réponse a aidé :).
Tout comme la création de schéma / de base de données supplémentaire: Créez Schema Your_Database Set de caractères UTF8 Collate UTF8_BIN;
Essayez d'utiliser cette requête avant tout autre extraction ou d'envoi:
SET NAMES UTF8