c++ - que - ¿Qué codificación utiliza std:: string.c_str()?
string library c++ (2)
Estoy tratando de convertir una std::string
C ++ std::string
a UTF-8 o std::wstring
sin perder información (considere una cadena que contiene caracteres no ASCII).
De acuerdo con http://forums.sun.com/thread.jspa?threadID=486770&forumID=31 :
Si std :: string tiene caracteres que no son ASCII, debe proporcionar una función que convierta de su codificación a UTF-8 [...]
¿Qué codificación std::string.c_str()
? ¿Cómo puedo convertirlo a UTF-8 o std::wstring
de manera multiplataforma?
std::string
contiene cualquier secuencia de bytes, por lo que la codificación depende de usted. Debes saber cómo está codificado. Sin embargo, si no sabe que es otra cosa, probablemente solo sea ASCII. En cuyo caso, ya es compatible con UTF-8.
std::string
per se no utiliza codificación, devolverá los bytes que ingrese. Por ejemplo, esos bytes pueden estar usando la codificación ISO-8859-1 ... o cualquier otra, en realidad: la información sobre la codificación simplemente no está allí. ¡Usted debe saber de dónde provienen los bytes!