2010-10-14 20 views
2

Existe-t-il un moyen en C++ de convertir de ö en o, ou ß en s, en général de utf-8 au caractère correspondant de ASCII?Convertir de ß en s C++

+5

Pas pertinent du tout pour le codage, mais les gens écrivent normalement les caractères avec des lettres normales comme ceci: serait ß-> ss et ö-> oe – chigley

+1

@chigley: Le problème est que cela dépend de la langue. –

+0

@chris_l - Je me suis procuré de l'Eszett que le texte source est en allemand, car je ne peux pas penser à d'autres langues qui l'utilisent! (Wiki l'a confirmé, sauf pour "romaniser la langue sumérienne") – chigley

Répondre

1

La norme C++ ne prend pas en charge UTF-8. Je suggérerais cette bibliothèque: http://utfcpp.sourceforge.net/

Si vous voulez, peut-être il est possible d'utiliser la fonctionnalité intégrée POSIX ou Windows pour cela. Mais alors ce n'est pas portable.

+0

chaque caractère 8 bits prend en charge UTF-8. Win32 API suce UTF-8, mais c'est différent de "C++ ne supporte pas UTF-8". C++ n'a pas de concept (sauf et facettes) de codage de caractères, et souvent n'en a pas besoin non plus ... – rubenvb

+0

Certes, il n'est pas impossible de gérer UTF-8 en C++, mais il n'y a pas de support de langage. Par opposition à C#, Python ou Java. –

+0

Je pense qu'il est juste de dire qu'un langage qui n'a pas de concept d'encodage ne supporte pas UTF-8. ;) – jalf