FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Abrir un archivo CSV forzando en UTF-8
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Abrir un archivo CSV forzando en UTF-8
Posted: Sun Dec 25, 2016 02: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/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Sun Dec 25, 2016 06:30 PM
Prueba esto

Code (fw): Select all Collapse
   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 (fw): Select all Collapse
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
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Sun Dec 25, 2016 07:41 PM
Muchísimas gracias!
Funcionó este:
Code (fw): Select all Collapse
hb_oemtoansi( hb_utf8tostr( cStr ) )


GraciaS!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 187
Joined: Mon Oct 20, 2008 06:33 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Wed Aug 12, 2020 07: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Wed Aug 12, 2020 09:20 PM
// ..\Samples\SEMACENT.PRG - by kapiabafwh@gmail.com - 12/08/2020 - Covid-19 Quarentine.

Code (fw): Select all Collapse
#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
Posts: 187
Joined: Mon Oct 20, 2008 06:33 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Sun Aug 16, 2020 05: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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Mon Aug 17, 2020 11:54 AM
Aqui, funcionou bem.

Tente / Intente:

Code (fw): Select all Collapse
   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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Tue Aug 18, 2020 02:32 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 187
Joined: Mon Oct 20, 2008 06:33 PM
Re: Abrir un archivo CSV forzando en UTF-8
Posted: Wed Aug 19, 2020 12:14 PM

Na mosca! Resolveu. Obricado.

Oscar Ribeiro

OASyS Informática

Fwh18.02 + xHarbour 1.2.3 + Bcc72

Continue the discussion