Por favor me ayude a alguien a convertir unicodestring en cadena

Esta es la forma en que estoy recibiendo unicodestring

UnicodeString _str = OpenDialog1->FileName;

O si es posible escribir en el archivo de cadena unicode con ifstream o algo por el estilo?

Gracias

  • Le hice la búsqueda antes de preguntar, no?
  • Sí im searchin ya 1 hora…
  • UnicodeString::t_str Método, sí, también se puede escribir en el archivo, de prefijo de su archivo con la BOM.
  • Manténgase alejado de la t_str() método. Es peligroso utilizar, ya que modifica los datos internos de la UnicodeString, y ha sido eliminado en las versiones posteriores de C++Builder de todos modos.
InformationsquelleAutor user525717 | 2012-07-02

3 Comentarios

  1. 7

    Dependiendo de sus necesidades, asignar el UnicodeString a un AnsiString o un UTF8String y, a continuación, escribir que para su archivo en lugar de la original UnicodeString sí mismo:

    UnicodeString _str = OpenDialog1->FileName; 
    AnsiString _astr = _str;
    

    O:

    UnicodeString _str = OpenDialog1->FileName; 
    UTF8String _ustr = _str;
    

    Para pasar un AnsiString/UTF8String a una función STL, tienes que:

    1) el uso de la c_str() método:

    stream << _astr.c_str();
    

    2) construir una temp std::string:

    stream << std::string(_astr.c_str(), _astr.Length());
    

    3) en el caso de AnsiString solamente, especifique el VCL_IOSTREAM definir en el proyecto para permitir que AnsiString la propia <<< y >> operadores:

    stream << _astr;
    
  2. 2

    La conversión de su cadena de bytes exigiría algún tipo de codificación. Hay varias librerías que hacen esto, por lo que depende de que el marco está utilizando.

    Como alternativa, puede utilizar wofstream escribir wchar_t caracteres en la secuencia.

Dejar respuesta

Please enter your comment!
Please enter your name here