22 votes

Ce codage ne std::string.c_str() utiliser?

Je suis en train de convertir un C++ std::string de l'UTF-8 std::wstring , sans perte d'information (considérer une chaîne de caractères qui contient des caractères non-ASCII).

Selon http://forums.sun.com/thread.jspa?threadID=486770&forumID=31:

Si le std::string a des caractères non-ASCII, vous devez fournir une fonction qui convertit le codage UTF-8 [...]

Ce codage std::string.c_str() utiliser? Comment puis-je le convertir en UTF-8 ou std::wstring dans une croix-plate-forme de la mode?

27voto

Alex Martelli Points 330805

std::string soi n'utilise pas de codage -- il sera de retour les octets que vous avez mis en elle. Par exemple, ces octets peuvent être à l'aide de l'ISO-8859-1 codage... ou tout autre, vraiment: l'information à propos de l'encodage est tout simplement pas là -- vous devez savoir où les octets ont été en provenance!

9voto

Naaff Points 6637

std::string contient une séquence d'octets, de sorte que le codage est à vous. Vous devez savoir comment il est codé. Toutefois, si vous ne savez pas que c'est quelque chose d'autre, il est probablement juste ASCII. Dans ce cas, c'est déjà compatible UTF-8.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X