CONVERSIÓN A UTF-8

1,111 views
Skip to first unread message

OTILIA CAÑON

unread,
Mar 5, 2020, 9:59:01 PM3/5/20
to Comunidad de Visual Foxpro en Español
LOCAL Lnumfactu
Lnumfactu ='c:\Factura _electronica\'+'factura'+ALLTRIM(This.pid)+'.xml'
**--Verifica si el archivo existe lo elimina 
DELETE FILE 'c:\Factura _electronica\'+'factura'+ALLTRIM(This.pid)+'.xml'

TEXT TO lcText ADDITIVE TEXTMERGE NOSHOW PRETEXT 4
<?xml version="1.0" encoding="UTF-8"?>
<PhysicalLocation>
<Address>
<ID><<This.AddressId>></ID>
<CityName><<This.CityName>></CityName>
<PostalZone><<This.PostalZone>></PostalZone>
<CountrySubentity><<ALLTRIM(This.CountrySubentity)>></CountrySubentity>
<CountrySubentityCode><<This.CountrySubentityCode>></CountrySubentityCode>
</Address>
</PhysicalLocation>
ENDTEXT
YlcText=STRCONV(lcText, 9,1033)
=STRTOFILE(YlcText,Lnumfactu,.T.)

Me genera este xml 

<PhysicalLocation>
<Address>
<ID>11001</ID>
<CityName>BOGOTÁ, D.C.</CityName>
<PostalZone></PostalZone>
<CountrySubentity>Bogotá</CountrySubentity>
<CountrySubentityCode>11</CountrySubentityCode>
</Address>
</PhysicalLocation>

Pero cuando cuando llega la validacion a BOGOTÁ, NO RECONOCE LA TILDE Y SACA EL SIGUIENTE ERROR 

Y CUANDO VA A VALIDAR EL ARCHIVO ME SALE EL ERROR EN ESTA LINEA:
<CityName>BOGOTÁ, D.C.</CityName>

input is not proper UTF-8 indicate encoding

Yo pienso que es la tilde, pero se supone que la función me convierte a UTF-8, y reconoce los caracteres especiales, si alguien me puede colaborar con este error

error electronica.png

Zarlu

unread,
Mar 6, 2020, 9:58:27 AM3/6/20
to Comunidad de Visual Foxpro en Español
Buenos días Otilia Cañon!

Observo que estás codificando con el parámetro "1033" que corresponde al inglés.

Yo también tuve problemas con los acentos en el idioma español y lo solucioné con el parámetro de conversión "11"

Quedaría así: StrConv(mitxt,11,1034)

Puedes referirte a la ayuda de VFP.

Suerte
zarlu
Chetumal, Quintana Roo, México

OTILIA CAÑON

unread,
Mar 6, 2020, 10:47:28 AM3/6/20
to publice...@googlegroups.com
Chetumal 
 
Gracias pero te hago una pregunta el parámetro 11, dice que convierte de  11 Convierte caracteres UTF-8 en cExpression en caracteres de doble byte . 
y yo necesito que me quede en UTF-8, 

OTILIA 

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/mozVata_kmQ/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/a8185bf8-313b-4e11-9fa6-c4d5b5c63b90%40googlegroups.com.

Zarlu

unread,
Mar 6, 2020, 11:54:34 AM3/6/20
to Comunidad de Visual Foxpro en Español
Hola Otilia Cañon!

Usa primero el 9 y luego entonces el 11

Algo así:
=STRCONV(STRCONV(tutexto,9),11)

Te sugiero el 11 por los acentos, pero igual el 13 como lo tenías.

Te dejo éste link del mismo grupo, mencionan una rutina para confirmar la conversión

Y por supuesto haz pruebas de envío/recepción y comparación para validar los acentos

OTILIA CAÑON

unread,
Mar 6, 2020, 12:12:10 PM3/6/20
to publice...@googlegroups.com
Muchas gracias voy a probar 

otilia

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/mozVata_kmQ/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.

OTILIA CAÑON

unread,
Mar 9, 2020, 5:02:13 PM3/9/20
to publice...@googlegroups.com
Asi como dices no funciona, eso es de una factura electrónica, y le he hecho de todo

otiliA

Zarlu

unread,
Mar 10, 2020, 12:29:37 PM3/10/20
to Comunidad de Visual Foxpro en Español
Buenos días Otilia Cañon!

Te pido disculpas ya por distraído no reparé en que tu mensaje inicial mencionas que es para factura electrónica...y eso tiene otras vertientes.
He leído al respecto ya que tuve la intención de entrarle al tema, pero es un asunto que requiere atención en producción y seguimiento en ejecución por las reformas fiscales y mi ocupación principal no me daría tregua.
Pero bueno....
Te paso éste link que, aunque ya no le veo movimiento, en su momento debatieron al respecto.

Haz probado CURSORTOXML(), opción 32?

Te paso también unos códigos que encontré para verificar UTF-8.
Quizá no sea la misma validación que requieres, pero como los localicé en la red te los paso.
Con el bloc de notas puedes guardar en diferentes formatos y entonces probar la validación

*-valida si es utf-8
lcText = Filetostr(getfile())
If lcText == STRCONV(STRCONV(lcText,12),10)
   ? "File is UTF8"
Else
   ? "File is ANSI"
Endif


*-valida si es utf-8 con cabacera Bom
LOCAL lcFile, lnH, lcBOM
lcFile = GETFILE()
lnH = FOPEN(m.lcFile, 10)
IF lnH > 0
  lcBOM = FREAD(m.lnH, 3)
  IF m.lcBOM == 0hEFBBBF
    WAIT WINDOW "UTF-8 BOM present"
  ELSE
    WAIT WINDOW "No UTF-8 BOM"
  ENDIF
  = FCLOSE(m.lnH)
ELSE
  *-- Process possible error here
ENDIF

OTILIA CAÑON

unread,
Mar 10, 2020, 1:54:44 PM3/10/20
to publice...@googlegroups.com
MUCHAS GRACIAS 

--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/mozVata_kmQ/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages