En Java, j'ai pu déterminer si un caractère particulier était par exemple un Kanji japonais utilisant Unicode.blockOf (Character). J'essaie de faire la même chose pour un QChar, mais je n'ai pas trouvé de fonction pertinente pour le faire. Je me demande si je l'ai manqué, ou devrais-je rouler le mien, et si oui, comment?Comment puis-je déterminer le bloc Unicode d'un caractère, en particulier un QChar Qt?
Répondre
Il y a QChar::Category howver il ne fournit pas tout ce que vous avez besoin, pour vérifier si le caractère est dans certaine gamme, vous pouvez écrire une fonction comme ceci:
bool inRange(QChar c, ushort b, ushort e) {
return (c.unicode() >= b) && (c.unicode() <= e);
}
Vous pouvez alors l'utiliser comme ceci:
inRange(c, 0x3040, 0x309F); // Hiragana?
Bien sûr, vous pouvez aller plus loin et de le rendre plus abstrait et enemurate les gammes:
inRange(c, Range::Hiragana);
et here est la liste des blocs Unicode
Je ne sais pas s'il existe une meilleure approche spécifique de Qt. Si ce n'est pas vous pourriez essayer d'utiliser ICU plutôt que de rouler votre propre solution. ICU possède à la fois une version "C/C++" et une version Java. La version Java d'ICU partage en fait un ancêtre commun avec certaines des bibliothèques standard Java pour i18n/l10n, donc la version C/C++ sera, espérons-le, facile à comprendre.
J'ai des sentiments mitigés sur l'ajout d'une dépendance de bibliothèque supplémentaire à mon application pour quelque chose de si simple. Comme je le vois, il devrait être facile de récupérer une sorte de code de caractère de mon personnage et ensuite de le tester contre une gamme de codes tels que définis dans la norme Unicode - ai-je tort? – neuviemeporte
- 1. Bloc Unicode d'un caractère en python
- 2. Remplacer le caractère unicode
- 3. QChar wchar_t
- 4. Haskell: convertir un entier unicode en caractère unicode réel
- 5. Convertir un caractère Unicode en texte correspondant?
- 6. Convertir "php unicode" en caractère
- 7. comment rewite un bloc de fichier particulier
- 8. java comment écrire un caractère Unicode 0x13?
- 9. Comment obtenir la valeur décimale d'un caractère Unicode en C++
- 10. Parse fichier CSV contenant un caractère Unicode en utilisant OpenCSV
- 11. Comment télécharger en bloc avec Qt?
- 12. Déterminer si une police peut ou non rendre un caractère Unicode dans Cocoa Touch
- 13. comment décoder un caractère non unicode en python?
- 14. Qt, QTextEdit: comment supprimer le dernier caractère?
- 15. Comment convertir un caractère accentué dans une chaîne unicode en son code de caractère Unicode en utilisant Python?
- 16. Traiter un caractère Unicode plus diacritique comme un seul caractère?
- 17. Vous voulez dépouiller un moment caractère particulier
- 18. Qt - Comment ouvrir un site Web dans un navigateur particulier
- 19. Impossible de traduire le caractère Unicode
- 20. Comment déterminer si un caractère est une lettre en Java?
- 21. Unicode Caractère Affichage Problème
- 22. Impossible de traduire le caractère Unicode '\ uDA22'
- 23. Chaîne d'ajustement PHP à un caractère particulier
- 24. Que représente le caractère Unicode ?
- 25. Conversion d'un caractère Unicode en caractère ASCII (.NET) le plus proche (le plus similaire)
- 26. Déterminer le CTLine contenant le caractère spécifique
- 27. Trouver le caractère occupant un index particulier dans une chaîne
- 28. comment convertir unicode à chaîne imprimable dans le flux QT
- 29. qt - Dans QGraphicsScene comment attraper un élément particulier
- 30. comment afficher le caractère unicode dans l'application iphone
pourquoi ne pas simplement "retourner c.unicode()> = b && c.unicode() <= e;"? Complexité constante vs linéaire ... –
Oui, ce serait en effet mieux :) Edité. – Palmik