Problemas con ñ y tildes al guardar archivo texto

Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Tue Nov 06, 2018 6:05 pm

Hola a todos.
Alguien me podría ayudar con este problema por favor.
Estoy creando un archivo XML, pero no esta guardando correctamente las ñ, tildes, etc.
Les coloco este ejemplo de lo que estoy haciendo (los datos los traigo de una tabla de MySQL):
Code: Select all  Expand view

   cArchivo = "docto.xml"
   Ferase(cArchivo)
   oFile := TFile():Create(cArchivo)
   cXml := "<OtrasSenas>100 M oeste del Banco Popular Cañas GTE</OtrasSenas>"
   oFile:PutStr( oXml:cXml )
   oFile:End()
 

Hasta aquí todo bien, pero cuando se edita el archivo, el mismo tiene guardado la ñ de esta forma:
[img]
http://www.tssemsa.com/documentos/archivotxt.jpg
[/img]
Lo mismo me pasa con las tildes. La codificación del archivo creado es UTF-8

Que es lo que tengo que hacer para que se guarde correctamente estos caracteres en este archivo de texto?

Saludos cordiales.

Carlos.
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Problemas con ñ y tildes al guardar archivo texto

Postby Carlos Mora » Tue Nov 06, 2018 6:43 pm

Hola Carlos,
el archivo que estás generando no es XML válido, le falta la cabecera donde se especifica el 'encoding' que tiene, y cuando tratas de mostrarlo el visor que usas no sabe como está codificado el texto interno.

Code: Select all  Expand view
<?xml version="1.0" encoding="UTF-8" ?>

o bien:
Code: Select all  Expand view
<?xml version="1.0" encoding="ISO-8859-1"?>


dependiendo lo que pida el destinatario del fichero. Creo que según lo estás generando la segunda opción debería ayudar.

Un saludo

PD: Añado el enlace https://www.w3schools.com/xml/default.asp al tutorial que es muy interesante.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Tue Nov 06, 2018 6:55 pm

Hola tocayo, gracias por responder.
El ejemplo que coloque era solo para indicar que en ese tag del XML donde coloco las señas de la dirección no coloca bien los datos, pero efectivamente, si agrego el encabezado como indicas, de esta forma:
Code: Select all  Expand view

<?xml version="1.0" encoding="UTF-8"?>
<FacturaElectronica xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica schema.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 


Ya intente guardar esa linea, dentro de mi código, de esta forma, pero me da lo mismo:
Code: Select all  Expand view

   oXml:AddNodo( "OtrasSenas1", hb_utf8tostr(cOtro) )          //Direccion
   oXml:AddNodo( "OtrasSenas2", hb_oemtoansi( hb_utf8tostr(cOtro) ) )          //Direccion
   oXml:AddNodo( "OtrasSenas3", hb_ansitooem( hb_utf8tostr(cOtro) ) )         //Direccion
   oXml:AddNodo( "OtrasSenas4", hb_utf8tostr( hb_oemtoansi(cOtro) ) )         //Direccion
   oXml:AddNodo( "OtrasSenas5", hb_utf8tostr( hb_ansitooem(cOtro) ) )         //Direccion
   oXml:AddNodo( "OtrasSenas6", hb_oemtoansi( cOtro) )          //Direccion
   oXml:AddNodo( "OtrasSenas7", hb_ansitooem( cOtro) )          //Direccion
 


Solo coloca caracteres raros en la "ñ"

Saludos.
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Tue Nov 06, 2018 7:36 pm

Siguiendo la sugerencia de Carlos Mora, cambie el encabezado del XML, colocando la codificación en "ANSI" y asi, no tengo problemas con las ñ y tildes
Code: Select all  Expand view

<?xml version="1.0" encoding="ANSI"?>
 


Pero se requiere que el encabezado sea UTF-8:
Code: Select all  Expand view

<?xml version="1.0" encoding="UTF-8" ?>
 


Que estaré haciendo mal?

Saludos.

Carlos
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Problemas con ñ y tildes al guardar archivo texto

Postby hmpaquito » Tue Nov 06, 2018 8:50 pm

Buenas,

Haz una string sustitucion según esto:

Code: Select all  Expand view
aSeek:= {"ª"               , "º"               , "ç"               , "Ç"               , "¿"               , "¡"               , "Ñ"               , "ñ"               , "«"               , "»"                }
aRepl:= {Chr(194)+ Chr(170), Chr(194)+ Chr(186), Chr(195)+ Chr(167), Chr(195)+ Chr(135), Chr(194)+ Chr(191), Chr(194)+ Chr(161), Chr(195)+ Chr(145), Chr(195)+ Chr(177), Chr(194)+ Chr(171), Chr(194)+ Chr(187) }
 
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Tue Nov 06, 2018 9:21 pm

Paco, muchas gracias.
Con esa sustitución funciona correctamente.
Ahora solo me queda averiguar los chr() de las tildes de las vocales. Tu de casualidad las tendrás por ahí?

Nuevamente muchas gracias por tu ayuda.

Saludos cordiales.

Carlos
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Tue Nov 06, 2018 9:37 pm

Ya los encontré, por si a alguien le sirve:
[url]
https://www.utf8-chartable.de/unicode-u ... l?utf8=dec
[/url]

Saludos.

Carlos
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Re: Problemas con ñ y tildes al guardar archivo texto

Postby Carlos Mora » Wed Nov 07, 2018 9:03 pm

Carlos,
por los ejemplos que pusiste, has estado muy cerca :)

prueba usando
hb_strToUTF8( <cStr> [, <cFromCPID> ] ) ➜ cUTF8Str

Tu has usado utf8tostr y es justo lo contrario!

A ver si con eso funciona. Un saludo
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Problemas con ñ y tildes al guardar archivo texto

Postby csincuir » Thu Nov 08, 2018 1:28 pm

Carlos, de verdad que si estuve cerca :D
Me funciono correctamente la función que me indicas: hb_strToUTF8()

Gracias por tu ayuda.

Saludos cordiales.

Carlos.
csincuir
 
Posts: 407
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala


Return to FiveWin para Harbour/xHarbour

Who is online

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