• [^] # Re: Bof

    Posté par . En réponse à la dépêche Mosh, the Mobile Shell. Évalué à 3.

    Déjà si ils prennent un encoding ce sera UTF-16, pas UTF-8 sinon une grosse partie des caractères va se retrouver à occuper 4 octects au lieu de 2. Sur un ordinateur normal on s'en fout un peu (et encore, bonjour la gueule des bases de données) mais sur une solution embarquée ca ne passe juste pas.

    C'est faux car tous les caractères qui prennent 4 octets en UTF-8 en prennent aussi 4 en UTF-16 (je détaille plus bas).
    Mais ton paragraphe devient diablement drôle quand on le rapproche du suivant:

    GB18030-2005 est justement la réponse de la Chine à UTF-8/UTF-16 qui reste compatible avec ASCII et l'ancien système GBK. Ils ont créé ce système à cause des nombreux problèmes que l'on peut rencontrer avec UTF-8 et UTF-16. (…) mais il est peut rentable pour les caractères japonais ou corééns qui vont systématiquement se retrouver sur 4 octets.

    Ah oui, c'est une vraie différence. Au lieu d'avoir des caractères sur 4 octets on a… des caractères sur 4 octets.

    Bon soyons constructif:

    Il y a un tableau bien fait pour combattre tes préjugés ici (si ça t'intéresse vraiment):
    http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings

    Pour le comprendre il faut avoir à l'esprit que les langues asiatiques hors idéogrammes rares (rares = CJK extensions B et suivantes) sont toutes dans le BMP ( Il faut aussi noter une petite approximation, ce n'est pas "most Chinese characters" qui tient sur 2 octets mais bien sûr "most usual Chinese characters" (hors idéogrammes CJK extensions B et suivantes, qui sont rares mais très nombreux).

    L'affectation des plans est ici:
    http://en.wikipedia.org/wiki/Unicode_plane
    http://en.wikipedia.org/wiki/CJK_Unified_Ideographs

    Pour te donner une idée du surcoût indu que représente +50% sur le texte non compressé, dis-toi que Microsoft a décidé avec Windows 2000 de passer tout stockage de chaîne caractères en UTF-16 (enfin historiquement en UCS-2 sous le nom pompeux d'Unicode) infligeant donc il y a plus de 10 ans un +100% à tout le monde occidental dès que tu passes par leurs bibliothèques (et comment te dire que c'est une pratique courante voire prudente sous Windows…).
    Et j'ai un scoop: on n'est pas morts d'un +100%.
    Les asiatiques survivrons à +50% (et j'ose la plaisanterie: en plus c'est eux qui fabriquent les disques durs et la RAM!).

    Tu n'aimes pas Microsoft, tu n'utilises pas leurs bibliothèques? Et bien je ne connais pas les choix techniques internes de tous les autres environnements de programmation mais devine ce qu'utilisent une String Java et une QString Qt comme format interne depuis des années ? Et oui là aussi on a pris +100% sans broncher.