Jump to content


Photo

[RESUELTO] ¿ Como guardar un archivo ANSI como UTF-8 ?


  • Please log in to reply
6 replies to this topic

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 12 July 2011 - 11:30 AM

Hola

Esto se hace fácil en Delphi 2009+, mi problema es que utilizo Delphi 2007, ¿ alguien sabe como guardar un archivo de texto como UTF-8 ?

Gracias

Salud OS
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 12 July 2011 - 11:33 AM

Pues.. ¿no es mejor utilizar la función Utf8Encode antes de guardar el archivo de texto?.

Saludos.
  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 12 July 2011 - 11:36 AM

Pues.. ¿no es mejor utilizar la función Utf8Encode antes de guardar el archivo de texto?.

Saludos.


Eso mismo es lo que hago e imaginaba que el problema estaba resuelto , pero...... el archivo sigue estando con formato ANSI aunque el contenido si está codificado.

Salud OS
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 12 July 2011 - 11:47 AM

Quizás esto te ayude.

Saludos

  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 12 July 2011 - 12:14 PM

Quizás esto te ayude.

Saludos


Hola amigo, el problema es el mismo, eso sólo funciona en Delphi 2009 o mayor, sigo buscando :)

Salud OS
  • 0

#6 seoane

seoane

    Advanced Member

  • Administrador
  • 1259 posts
  • LocationEspaña

Posted 12 July 2011 - 02:02 PM

Prueba con esto:


delphi
  1. procedure AnsiToUTF8(Str: AnsiString; Filename: String);
  2. var
  3.   F: File;
  4.   Escritos: Integer;
  5. begin
  6.   Str:= UTF8Encode(Str);
  7.   Str:= #$EF#$BB#$BF + Str;
  8.   AssignFile(F, Filename);
  9.   {$I-}
  10.     Rewrite(F,Sizeof(AnsiChar));
  11.   {$I+}
  12.   if IOResult = 0 then
  13.   begin
  14.     BlockWrite(F,PAnsiChar(Str)^,Length(Str),Escritos);
  15.     CloseFile(F);
  16.   end;
  17. end;


No lo he probado pero deberia funcionar.
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14469 posts
  • LocationMéxico

Posted 12 July 2011 - 03:19 PM

¡Wow! Eres bárbaro amigo, que fácil haces ver las cosas, me sirvió perfecto (y) muchas gracias.

Salud OS
  • 0




IP.Board spam blocked by CleanTalk.