Abrir un archivo CSV forzando en UTF-8

Post Reply
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Abrir un archivo CSV forzando en UTF-8

Post by goosfancito »

Buen dia.

Me pasaron archivos en csv, que tengo que abrirlos en formato UTF-8 sino aparecen todos _ raros como:
Colisión entre vehículos
intente leer cada parte del archivo CSV y convertirlos con HB_StrToUTF8
pero la salida no es la que esperaba:
Colisión entre vehículos
En que le estoy pifiando?

gracias.
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Abrir un archivo CSV forzando en UTF-8

Post by cnavarro »

Prueba esto

Code: Select all

   cStr   := Memoread( "file.txt" )
   ? 'Directamente             : ', cStr
   ? 'UTF8toSTR            : ',hb_utf8tostr( cStr )
   ? 'OEMtoANSI + UTF8toSTR: ',hb_oemtoansi( hb_utf8tostr( cStr ) )
   ? 'ANSItoOEM + UTF8toSTR: ',hb_ansitooem( hb_utf8tostr( cStr ) )
   ? 'UTF8toSTR + OEMtoANSI: ',hb_utf8tostr( hb_oemtoansi( cStr ) )
   ? 'UTF8toSTR + ANSItoOEM: ',hb_utf8tostr( hb_ansitooem( cStr ) )
   ? 'OEMtoANSI            : ',hb_oemtoansi( cStr )
   ? 'ANSItoOEM            : ',hb_ansitooem( cStr )

 
o tambien puedes probar

Code: Select all

REQUEST HB_CODEPAGE_ESWIN

? := hb_Translate( cStrUtf8 , "UTF8", "ESWIN" )
 
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Re: Abrir un archivo CSV forzando en UTF-8

Post by goosfancito »

Muchísimas gracias!
Funcionó este:

Code: Select all

hb_oemtoansi( hb_utf8tostr( cStr ) )
GraciaS!
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
ORibeiro
Posts: 174
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Abrir un archivo CSV forzando en UTF-8

Post by ORibeiro »

Estou com o mesmo problema quando os dados vem de uma API.

Nenhum desses tirou os acentos do nome: José João A. Gonçalves

cStr := "José João A. Gonçalves"
? 'Directamente : ', cStr
? 'UTF8toSTR : ',hb_utf8tostr( cStr )
? 'OEMtoANSI + UTF8toSTR: ',hb_oemtoansi( hb_utf8tostr( cStr ) )
? 'ANSItoOEM + UTF8toSTR: ',hb_ansitooem( hb_utf8tostr( cStr ) )
? 'UTF8toSTR + OEMtoANSI: ',hb_utf8tostr( hb_oemtoansi( cStr ) )
? 'UTF8toSTR + ANSItoOEM: ',hb_utf8tostr( hb_ansitooem( cStr ) )
? 'OEMtoANSI : ',hb_oemtoansi( cStr )
? 'ANSItoOEM : ',hb_ansitooem( cStr )
_ Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Post by karinha »

// ..\Samples\SEMACENT.PRG - by kapiabafwh@gmail.com - 12/08/2020 - Covid-19 Quarentine.

Code: Select all

#include "FiveWin.ch"

FUNCTION Main()

   LOCAL cStr := "José João A. Gonçalves"
   LOCAL cRet

   cRet := TIRA_ACENTUACAO( cStr )

   ? cRet

RETURN NIL
// INCORPORAR CHR(ASC) NOVO/DESCONHECIDO.
FUNCTION TIRA_ACENTUACAO( cStr )

   LOCAL cStrNew := "", nX, cAcentos, cLetras

   cAcentos := {"é","ç","ã","ý","ƒ","Æ","PEÇAS","Ç"," ","µ","…","·","‚","É","ê","ˆ","","Ò","í","Í","ó","¢","à","ä","å","“","â","ú","é","","š","ç","€","ã","Ã","á","Á","à","À","é","É","ê","Ê","í","Í","ó","Ó","õ","Õ","ô","Ô","ú","Ú","ü","Ü","ç","ù","AAO","§","¦","º","ª","€","‡","Ç","ç","'","`","ø","¡","Þ","×","Ø", chr(239)}
   cLetras  := {"e","c","a","2","A","A","PECAS","A","A","A","A","A","E","E","E","E","E","E","I","I","O","O","O","O","O","O","O","U","U","U","U","C","C","A","A","A","A","A","A","E","E","E","E","I","I","O","O","O","O","O","O","U","U","U","U","C"," ","CAO",".",".",".",".","C","C","C","C","" ,"" ,".","I","I","I","I",    ""   }

   For nX := 1 TO LEN(cAcentos)

      cStrNew := StrTran(cStr, cAcentos[nX], cLetras[nX])

      cStr := cStrNew

   Next

RETURN( cStrNew )
 
Regards, saludos.
João Santos - São Paulo - Brasil
User avatar
ORibeiro
Posts: 174
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Abrir un archivo CSV forzando en UTF-8

Post by ORibeiro »

Olá João,

Obrigado por responder, no entanto, infelizmente a sua função não funcionou para trocar os acentos UTF8.

A função HB_UTF8TOSTR() também não funciona.

Não sei mais o que fazer para converter UTF8 em ASC para depois tirar os acentos.
_ Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Post by karinha »

Aqui, funcionou bem.

Tente / Intente:

Code: Select all

   HB_SETCODEPAGE( "UTF8" )

   mxBairro := HB_OemToAnsi( HB_UTF8ToStr( mxBairro ))
   mxEndere := AllTrim( HB_OemToAnsi( HB_UTF8ToStr( mxEndere )) )
   mCidade  := HB_OemToAnsi( HB_UTF8ToStr( mCidade ))
 
Regards, saludos.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Post by karinha »

João Santos - São Paulo - Brasil
User avatar
ORibeiro
Posts: 174
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Abrir un archivo CSV forzando en UTF-8

Post by ORibeiro »

Na _! Resolveu. Obricado.
_ Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
Post Reply