ASP y XML: Problema de codificacion (me urge)

26/11/2003 - 13:07 por Miguel González | Informe spam
A ver si alguien puede ayudarme, por favor:

Según la documentación, cuando proceso unos datos xml (docXML, por ejemplo) enviados con el método "xml", se codifican mediante UTF-8.

Esto me supone un problema al insertar los datos en una Base de Datos Access, ya que los acentos, eñes, etc. no se graban correctamente.

Hay alguna forma de decodificar el UTF-8 en el momento de grabar los datos???


Más o menos lo hago así:

Envio los datos desde una página mediante.

xmlhttp1.Send(docXML1.xml)

Recupero los datos en la otra página mediante:

docXML2.Load(Request)

Grabo los datos en la base de datos mediante un "INSERT INTO... VALUES(" & nodocampo.text & ")"

Donde nodocampo corresponde a un "Nodo hijo" del "Nodo registro"

Saludos!
Miguel

Preguntas similare

Leer las respuestas

#6 Jhonny Vargas P. [MVP]
28/11/2003 - 13:36 | Informe spam
A que bien y gracias por señalar como lo solucionaste!!!


Saludos,
Jhonny Vargas P. [MS MVP]
Santiago de Chile

"Miguel González" wrote in message
news:
Gracias a todos por contestar.

El problema estriba en que la base de datos que utilizo (Access 97) no
almacena correctamente los caracteres UTF-8/Unicode que le envia el
componente msxml.

La solucion que he utilizado: una pequeña funcion en VB que decodifica los
caracteres "díscolos" antes de grabar (sirve para los juegos de caracteres
de 2 bytes).

He aquí la función:

Function decodifica(texto)
Dim i, textoOk
textoOk = ""
' Recorre la cadena de texto
For i = 1 To Len(texto)
' Comprueba que el caracter ocupe un byte (los inferiores a 127)
If Asc(Mid(texto, i, 1)) <= 127 Then
textoOk = textoOk & Mid(texto, i, 1)
Else
' Si es un caracter "díscolo" (de 2 Bytes)
' se salta el primer byte
i = i + 1
' y lo equilibra sumandole 64 (es el resultado del algoritmo UTF-8
' para juegos de caracteres de 2 bytes.
textoOK = textoOk & Chr(Asc(Mid(texto, i, 1))+64)
End If
Next
' devuelve el texto decodificado
decodifica = textoOk
End Function

Saludos!
Miguel

"Miguel González" escribió en el mensaje
news:
A ver si alguien puede ayudarme, por favor:

Según la documentación, cuando proceso unos datos xml (docXML, por ejemplo)
enviados con el método "xml", se codifican mediante UTF-8.

Esto me supone un problema al insertar los datos en una Base de Datos
Access, ya que los acentos, eñes, etc. no se graban correctamente.

Hay alguna forma de decodificar el UTF-8 en el momento de grabar los
datos???


Más o menos lo hago así:

Envio los datos desde una página mediante.

xmlhttp1.Send(docXML1.xml)

Recupero los datos en la otra página mediante:

docXML2.Load(Request)

Grabo los datos en la base de datos mediante un "INSERT INTO... VALUES(" &
nodocampo.text & ")"

Donde nodocampo corresponde a un "Nodo hijo" del "Nodo registro"

Saludos!
Miguel
#7 Manuel Etcheto
28/11/2003 - 15:16 | Informe spam
Hola Miguel
podrías probar, al comienzo de la página que envía la data
Response.charset="ISO-8859-1"

Digo, probar para tratar de evitar (si se pudiere) la
concatenación de cadenas en vb...
Suerte
Manuel


Mostrar la cita
(Access 97) no almacena correctamente los caracteres UTF-
8/Unicode que le envia el componente msxml.
Mostrar la cita
que decodifica los caracteres "díscolos" antes de grabar
(sirve para los juegos de caracteres de 2 bytes).
Mostrar la cita
a 127)
Mostrar la cita
algoritmo UTF-8
Mostrar la cita
+64)
Mostrar la cita
mensaje news:
Mostrar la cita
(docXML, por ejemplo) enviados con el método "xml", se
codifican mediante UTF-8.
Mostrar la cita
Base de Datos Access, ya que los acentos, eñes, etc. no se
graban correctamente.
Mostrar la cita
grabar los datos???
Mostrar la cita
INTO... VALUES(" & nodocampo.text & ")"
Mostrar la cita
registro"
Mostrar la cita
Ads by Google
Search Busqueda sugerida