7
votes

Quelle base de données et quelle langue vaut mieux pour la gestion de l'unicode?

Quelle base de données devrais-je utiliser si mon application sera dans plusieurs langues (y compris chinois, japonais, etc.)? En d'autres termes, est MySQL meilleur ou pire que Postgres pour gérer Unicode, etc.? (Ce sont les deux seules bases de données que ma société d'hébergement a)

Aussi, quelle langue vaut mieux pour la manipulation d'unicode? Php ou rubis / rails?


2 commentaires

Je pense que vous devriez créer une question distincte pour la langue.


J'aime quand les gens commencent à apprendre de nouvelles langues de programmation car leur fournisseur d'hébergement les a installés.


4 Réponses :


1
votes

Bases de données:

Dans mon expérience, MySQL et Postgres ont manipulé unicode assez bien.

Langues:

  • php <= 5.3 est quelque peu limité en ce qui concerne Unicode, tandis que le prochain PHP 6 promet de résoudre ce problème.
  • Ruby 1.8 avait une mauvaise prise en charge Unicode, mais 1,9 manipulait bien l'unicode (je n'ai aucune expérience de choix).

    restrictions de PHP 5.3:

    Il est possible d'utiliser PHP 5 avec Unicode, mais il faut ensuite faire attention aux cordes. De nombreuses fonctions de chaîne, par exemple celui qui comptent la longueur des caractères, renvoie le nombre d'octets et non le nombre de caractères. Il existe des fonctions supplémentaires disponibles cependant, qui renvoient le nombre de caractères.

    S'il s'agit d'un nouveau projet, vous devriez pouvoir utiliser les bonnes fonctions à partir du début.

    Pour notre projet PHP existant, j'ai décidé de la quitter où il était (Windows 1252), en raison d'un projet interne et d'une valeur limitée pour UNICODE (tristement, j'adore vraiment Unicode).


1 commentaires

Si votre pilote DB ne prend pas en charge Unicode, vous pouvez lire et écrire des matrices d'octets brutes et les convertir en chaînes à l'aide de votre codage souhaité.



7
votes

mysql n'a pas de support total pour Unicode (par exemple: caractères chinois en dehors du BMP) ( voir ). Il utilise un " codage UTF8 '(non vraiment utf-8).

postgreSQL semble avoir une prise en charge complète de utf -8 coding (par conséquent, pour tous les caractères Unicode).


1 commentaires

Totalement vrai. MySQL stocke 1 à 3 octets et PostgreSQL 1 à 4 octets par UTF-8 Char. Allez pour PostgreSQL.



0
votes

Dans mes cas PostgreSQL était meilleur que MySQL, MySQL ne supporte pas complètement UNICODE


1 commentaires

Cela a déjà été répondu. Juste upvote la réponse que vous êtes totalement d'accord au lieu de le republier une fois de plus.



0
votes

postgreSQL + php6 est bon choix


1 commentaires

Php6? Où? N'avaient-ils pas branchés les trucs UTF16 et émettent une réinitialisation il y a quelques mois? :-)