Page 1 of 1
Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 6:05 pm
by csincuir
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
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 _ en este archivo de texto?
Saludos cordiales.
Carlos.
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 6:43 pm
by Carlos Mora
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
<?xml version="1.0" encoding="UTF-8" ?>
o bien:
Code: Select all
<?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.
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 6:55 pm
by csincuir
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
<?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
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.
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 7:36 pm
by csincuir
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
<?xml version="1.0" encoding="ANSI"?>
Pero se requiere que el encabezado sea UTF-8:
Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
Que estaré haciendo mal?
Saludos.
Carlos
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 8:50 pm
by hmpaquito
Buenas,
Haz una string sustitucion según esto:
Code: Select all
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) }
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 9:21 pm
by csincuir
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
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Tue Nov 06, 2018 9:37 pm
by csincuir
Ya los encontré, por si a alguien le sirve:
https://www.utf8-chartable.de/unicode- ... ?utf8=dec
Saludos.
Carlos
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Wed Nov 07, 2018 9:03 pm
by Carlos Mora
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
Re: Problemas con ñ y tildes al guardar archivo texto
Posted: Thu Nov 08, 2018 1:28 pm
by csincuir
Carlos, de verdad que si estuve cerca

Me funciono correctamente la función que me indicas: hb_strToUTF8()
Gracias por tu ayuda.
Saludos cordiales.
Carlos.