Abrir un archivo CSV forzando en UTF-8

Abrir un archivo CSV forzando en UTF-8

Postby goosfancito » Sun Dec 25, 2016 2:14 pm

Buen dia.

Me pasaron archivos en csv, que tengo que abrirlos en formato UTF-8 sino aparecen todos los caracteres 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.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Abrir un archivo CSV forzando en UTF-8

Postby cnavarro » Sun Dec 25, 2016 6:30 pm

Prueba esto

Code: Select all  Expand view

   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  Expand view

REQUEST HB_CODEPAGE_ESWIN

? := hb_Translate( cStrUtf8 , "UTF8", "ESWIN" )
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6501
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Abrir un archivo CSV forzando en UTF-8

Postby goosfancito » Sun Dec 25, 2016 7:41 pm

Muchísimas gracias!
Funcionó este:
Code: Select all  Expand view
hb_oemtoansi( hb_utf8tostr( cStr ) )


GraciaS!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Abrir un archivo CSV forzando en UTF-8

Postby ORibeiro » Wed Aug 12, 2020 7:37 pm

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 )
Oscar Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
ORibeiro
 
Posts: 187
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Abrir un archivo CSV forzando en UTF-8

Postby karinha » Wed Aug 12, 2020 9:20 pm

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

Code: Select all  Expand view

#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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7315
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Postby ORibeiro » Sun Aug 16, 2020 5:36 pm

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.
Oscar Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
ORibeiro
 
Posts: 187
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil

Re: Abrir un archivo CSV forzando en UTF-8

Postby karinha » Mon Aug 17, 2020 11:54 am

Aqui, funcionou bem.

Tente / Intente:

Code: Select all  Expand view

   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 - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7315
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Postby karinha » Tue Aug 18, 2020 2:32 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7315
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Abrir un archivo CSV forzando en UTF-8

Postby ORibeiro » Wed Aug 19, 2020 12:14 pm

Na mosca! Resolveu. Obricado.
Oscar Ribeiro
OASyS Informática
Fwh18.02 + xHarbour 1.2.3 + Bcc72
User avatar
ORibeiro
 
Posts: 187
Joined: Mon Oct 20, 2008 6:33 pm
Location: Itu, Sao Paulo, Brazil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 55 guests