Différence entre les normes ANSI et Unicode pilotes de MySQL
Sur le choix de la Source de Données sous ODBC (64 Bits) sur Windows, j'obtiens deux options disponibles de la Base de données MySQL:
- ODBC de MySQL 5.3 ANSI Pilote
- ODBC de MySQL 5.3 Pilote Unicode
Quelles sont les différences entre ces deux?
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, je dois dire que je n'utilise pas MySQL mais je ne sais à propos des Pilotes ODBC. Dans ODBC sont différentes Api de l'unicode et ansi. L'ansi, Api fin dans l'Un et l'unicode Api fin en W (par exemple, SQLPrepareA et SQLPrepareW). L'ansi, Api accepter octets octets pour les chaînes de caractères, et donc ne peut gérer que rrpc de 0 à 255. L'unicode Api accepter SQLWCHARs qui sont 2 octets UCS-2 unicode codés codepoints (plus récente MS les versions de SQL Server peut gérer UTF16 chaînes codées) et peut donc traiter environ la première 65000 codepoints en unicode.
Donc, si vous avez besoin de stocker des données unicode, vous n'avez pas le choix qui pilote à utiliser.
Je ne laisserais pas les commentaires sur la vitesse de Carnangel vous mettre hors tension à l'aide du pilote unicode et, en tout cas, ses commentaires ne comprennent pas tous les faits. Il peut faire référence à:
Si vous stockez des données unicode dans MySQL, il sera codé en UTF-8 et transférés sur votre réseau, comme UTF-8. Au niveau du client final le pilote ODBC devez la convertir en UTF-8 données en UCS-2 comme c'est ce que ODBC besoins. Évidemment, l'inverse s'applique.
Si vous écrivez un ANSI application ODBC (c'est celui qui utilise la norme ansi ODBC api) avec un pilote ODBC unicode puis le gestionnaire de Pilote ODBC convertir l'UCS-2 le pilote renvoie à 8 bits (avec perte de qualité) et de convertir les 8 bits de données que vous transmettez à la pilote de l'UCS-2. Afin de ne pas le faire.
Ces jours je serais surpris si quelqu'un est encore en utilisant la norme ANSI pilotes ODBC.
Comme vous le savez peut Ansi et unicode sont appliqués aux données de type caractère.
Vous pouvez choisir l'un ou l'autre, il n'est pas une question de processeur
Ici est la différence entre eux:
- Unicode vous permettre d'avoir tous les personnages propriétés activée, mais la réduction de vitesse brute de traitement
Ansi, à l'opposé, moins de caractère de type, mais raw vitesse de traitement permettra d'accélérer
Si vous êtes un nouvel utilisateur de prendre l'Unicode, si pas, vous pouvez choisir l'Ansi une.
J'espère que vous avez obtenu le point 😉