J'accepte l'entrée de l'utilisateur via un formulaire Web (comme UTF-8), l'enregistre dans une base de données MySQL (en utilisant le jeu de caractères UTF-8) et génère un fichier texte plus tard (encodé en UTF-8). Je me demande s'il y a une chance de corruption de texte en utilisant UTF-8 au lieu de quelque chose comme UCS-2? L'UTF-8 est-il assez bon dans cette situation?Est-ce que l'UTF-8 est acceptable pour lire/écrire des langues asiatiques?
Répondre
Plus que cela, c'est peut-être le seul encodage que vous devriez utiliser.
Une bonne lecture sur le sujet:
UTF-8 peut représenter tout caractère unicode. En tant que tel, vous ne devriez pas avoir de problème avec UTF-8. En fait, UTF-8 peut même représenter certains caractères que l'UCS-2 ne peut pas représenter (UCS-2 ne peut représenter que U + 0000 à U + FFFF; UTF-8, UTF-16 et UCS-4 gèrent tous les Unicode). (codepoints)
Autant que je sache, UTF-8 est conçu pour englober toutes ces variations Unicode antérieures, donc oui, il devrait être bien de l'utiliser sur UCS-2. Voir http://www.unicode.org/versions/Unicode5.1.0/ et regardez dans la barre latérale pour les chapitres de livre 5.0; les pièces 9-12 devraient être ce que vous recherchez.
Si vous travaillez avec beaucoup de texte asiatique (plus que du texte latin), vous pouvez envisager UTF-16. UTF-8 peut représenter avec précision toute la gamme de caractères Unicode, mais il est optimisé pour le texte qui est principalement ASCII. UTF-16 est peu encombrant sur l'ensemble du Basic Multilingual Plane. Mais UTF-8 est très certainement "assez bon" - il n'y aura pas de corruption surgissant simplement parce que vous utilisez UTF-8 sur, disons, UTF-16.
Il fonctionne à merveille avec Devanagari.
- 1. Delphi: Est-il acceptable pour un formulaire de se libérer?
- 2. Maven pour d'autres langues?
- 3. Est-il acceptable de muter des objets avec std :: for_each?
- 4. Fichiers de ressources pour les langues autres que ISO 8859
- 5. Est-il acceptable d'utiliser une colonne XML pour stocker des données supplémentaires?
- 6. NHibernate - Est-il acceptable d'utiliser une base abstraite pour fournir des fonctionnalités au lieu d'une interface?
- 7. Charset pour les langues étrangères
- 8. Est-il acceptable d'inclure un identifiant dans l'URL?
- 9. Est-il acceptable de renvoyer un KeyValuePair d'une fonction .NET?
- 10. Que faut-il faire pour éviter que les commentaires des utilisateurs en langues étrangères ne deviennent charabia?
- 11. C# Création d'une configuration pour plusieurs langues
- 12. quelles langues inclure dans l'application iphone pour créer localisable pour les deux langues occidentales et orientales?
- 13. Mysql colation pour toutes les langues
- 14. Est-ce que .NET a supprimé la distinction entre les différentes langues?
- 15. Nouvelles langues
- 16. La comparaison des tailles de chaînes est-elle une alternative acceptable à la comparaison de caractères?
- 17. Hibernate/JPA Parent-Child - est-il acceptable pour Parent equals()/hashCode() d'utiliser l'identifiant DB?
- 18. Est-il acceptable d'utiliser .NET MembershipProvider pour avoir plusieurs "applications" virtuelles sur une application Web?
- 19. Quelles sont les bibliothèques inter-langues pour les personnes qui connaissent d'autres langues (similaire à phpjs)
- 20. Langues de cinquième génération?
- 21. Comment faire pour que mon application .NET prenne en charge différentes langues
- 22. Horde est-il un cadre acceptable pour le développement de groupware PHP?
- 23. Comment ajouter des langues supplémentaires à sla.r que j'utilise avec mon fichier .dmg?
- 24. Est-il toujours acceptable de renvoyer True lorsque le paramètre Equals est une référence nulle?
- 25. Langues multi-paradigmes
- 26. plusieurs langues dans codeigniter
- 27. Est-ce que PHP est international?
- 28. Table avec plusieurs langues
- 29. Utilisation de différentes langues .Net?
- 30. compilateurs pour les langues de 1950 et 1960 de
Merci pour le lien - j'ai lu ça il y a un moment. Je suis familier avec les différents encodages (caractères de longueur fixe vs caractères de longueur variable) mais pour une raison quelconque, j'avais l'impression que l'UCS-2 pouvait représenter plus de caractères. Je suppose que j'avais tort. :) –
UCS-2 et UTF-16 sont souvent confondus - pour certains codes, ils sont équivalents, mais pour d'autres, UTF-16 introduit des codes de substitution pour tenir compte du fait que tous les caractères Unicode ne correspondent pas à 16 bits. Windows et Java utilisent d'ailleurs UTF-16, _not_ UCS-2. – bdonlan
Notez que UCS-2 a des caractères de longueur fixe, tandis que UTF-16 a des caractères de longueur variable. Les deux fonctionnent en morceaux de 16 bits. (Notez également que UCS-2 est obsolète.) –