Foros del Web » Programando para Internet » ASP Clásico »

Problema ASP BBDD ñ y acentos

Estas en el tema de Problema ASP BBDD ñ y acentos en el foro de ASP Clásico en Foros del Web. Hola a todos, estoy trabajando en ASP con conexión a BBDD MySQL. El problema es que me aparecen carácteres extrños cuando hago un INSERT o ...
  #1 (permalink)  
Antiguo 22/03/2011, 03:08
 
Fecha de Ingreso: julio-2010
Mensajes: 298
Antigüedad: 13 años, 9 meses
Puntos: 8
Problema ASP BBDD ñ y acentos

Hola a todos, estoy trabajando en ASP con conexión a BBDD MySQL.
El problema es que me aparecen carácteres extrños cuando hago un INSERT o UPDATE en BBDD si el campo en cuestión contiene acentos o ñ. Me deja insertarlo, pero después al mostrar el valor en la página me aparecen dichos caracteres extraños.

En mi página tengo lo siguiente:

Código:
Response.charset = "UTF-8"
Dim sSql, sName
sName = Upload.Form("name")
sSql = "UPDATE my_table SET name='" & sName & "' WHERE id=1"
oConn.Execute sSql
Para más infosName recibe correctamente el valor que tiene que tomar, con los acentos y ñ correspondientes, y la query se forma correctamente, pero el problema está en la inserción en BBDD.

Alguna idea?
Muchas gracias,
Pimager
  #2 (permalink)  
Antiguo 22/03/2011, 06:24
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Problema ASP BBDD ñ y acentos

El cotejamiento de la BD es también utf-8?
Además (no sé si ocurre en IIS/ASP, pero sí en Apache/PHP)... el archivo ASP está guardado como UTF-8?
__________________
...___...
  #3 (permalink)  
Antiguo 25/03/2011, 02:50
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 6 meses
Puntos: 7
Respuesta: Problema ASP BBDD ñ y acentos

para que no haya broncas utiliza el metodo encodeHTML, del objeto server que tiene el asp, por ejemplo:

Código ASP:
Ver original
  1. cadena = "áéíóú äëïöü ñ y demas"
  2. response.write server.encodeHTML(cadena)

es mas facil asi que ver la codificacion de la pagina.
  #4 (permalink)  
Antiguo 25/03/2011, 10:52
Avatar de Julcar  
Fecha de Ingreso: noviembre-2007
Ubicación: C:\inetpub\wwwroot\Guayaquil
Mensajes: 1.507
Antigüedad: 16 años, 4 meses
Puntos: 54
Respuesta: Problema ASP BBDD ñ y acentos

Cita:
Iniciado por Joch_pa Ver Mensaje
para que no haya broncas utiliza el metodo encodeHTML, del objeto server que tiene el asp, por ejemplo:

Código ASP:
Ver original
  1. cadena = "áéíóú äëïöü ñ y demas"
  2. response.write server.encodeHTML(cadena)

es mas facil asi que ver la codificacion de la pagina.
es Server.HTMLEncode

aunque yo pienso que estas cosas deberian hacerse con javascript.
__________________
Linux no es el único S.O. libre, conoce a ReactOS el Windows Libre!
"Si mis respuestas te dan la calma, espárceme un poco de karma"
  #5 (permalink)  
Antiguo 26/03/2011, 01:16
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 6 meses
Puntos: 7
Sonrisa Respuesta: Problema ASP BBDD ñ y acentos

Cita:
Iniciado por Julcar Ver Mensaje
es Server.HTMLEncode

aunque yo pienso que estas cosas deberian hacerse con javascript.
Sorry, me equivoque (esa memoria) pero aun creo que es la mejor solución a su problema, espero le sirva, o que nos diga cual le va mejor.
  #6 (permalink)  
Antiguo 27/03/2011, 08:50
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema ASP BBDD ñ y acentos

lo mas conveniente es lo que expone AlZuwaga, que el cotejamiento de la bd sea utf-8 y los archivos asp tenga la codificación utf-8 sin bom
  #7 (permalink)  
Antiguo 28/03/2011, 01:14
Avatar de Joch_pa  
Fecha de Ingreso: octubre-2009
Ubicación: Pachuca De Soto, Hidalgo, Mexico, Mexico
Mensajes: 122
Antigüedad: 14 años, 6 meses
Puntos: 7
Exclamación Respuesta: Problema ASP BBDD ñ y acentos

Cita:
Iniciado por IsaBelM Ver Mensaje
lo mas conveniente es lo que expone AlZuwaga, que el cotejamiento de la bd sea utf-8 y los archivos asp tenga la codificación utf-8 sin bom
Discrepo con esto, nos dice que la inserción si la hace correctamente (osea se guarda la Ñ y acentos en el registro), y por lo tanto no tiene que verificar nada con la BD, tal ves sea la codificacion del asp, pero si utiliza el metodo HTMLencode no tiene que mover nada
el HTMLencode, codifica la cadena con la norma de HTML

aqui una referencia de lo que digo:
Código Referencia:
Ver original
  1. Cuando en un texto HTML se quiere escribir una eñe, por ejemplo. Existen dos formas de hacerlo. La primera, que es a la que obliga el estándar de HTML, consiste en utilizar entidades , es decir, palabrejas como las que antes se presentaron para escribir ciertos símbolos. Las entidades comienzan siempre con el símbolo & , y terminan con un punto y coma ( ; ). Entre medias va un identificador del carácter que queremos que se escriba. Las entidades necesarias en nuestro idioma son:
  2.  
  3. á: á
  4. é: é
  5. í: í
  6. ó: ó
  7. ú: ú
  8. Á: Á
  9. É: É
  10. Í: Í
  11. Ó: Ó
  12. Ú: Ú
  13. ü: ü
  14. Ü: Ü
  15. ñ: ñ
  16. Ñ: Ñ
  17. ¿: ¿
  18. ¡: ¡
  19. Como puede verse, las vocales acentuadas se identifican añadiendo el sufijo acute a la vocal sin acentuar (puesto que se trata de un acento agudo). Para la u con diéresis y la eñe se usan uml tras una u y tilde detrás una ene, respectivamente. La equivalencia de los signos de abrir interrogación y exclamación es algo más oscura: a falta de una denominación más evidente, tenemos que usar el valor numérico de dichos caracteres en el código estándar latin1 (ISO-8859-1). Esto se puede hacer con cualquier otro carácter del código latin1, que es el código de caracteres básico en HTML, escribiendo &#numero; .
  20.  
  21. La segunda manera, que sin duda es más cómoda, consiste en no preocuparse por esta limitación y escribir literalmente los caracteres afectados. A pesar de que este método suele funcionar en las conexiones WWW directas (porque el protocolo HTTP, que transporta el HTML por los vericuetos de Internet, requiere un canal de 8 bits), no tiene por qué funcionar bien cuando los documentos HTML se envían por correo electrónico, por ejemplo. Por tanto, y a pesar de los inconvenientes, es absolutamente recomendable respetar la norma especificada en HTML.
[URL="http://www.webtaller.com/construccion/lenguajes/html/lecciones/caracteres-especiales-html.php"]Fuente[/URL]
  #8 (permalink)  
Antiguo 28/03/2011, 05:15
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema ASP BBDD ñ y acentos

está bien que discrepes, pero para que tener que reemplazar por entidades html cuando con la codificación utf-8 se soluciona todo?? mal gastar recursos del servidor
  #9 (permalink)  
Antiguo 28/03/2011, 21:15
Avatar de Julcar  
Fecha de Ingreso: noviembre-2007
Ubicación: C:\inetpub\wwwroot\Guayaquil
Mensajes: 1.507
Antigüedad: 16 años, 4 meses
Puntos: 54
Respuesta: Problema ASP BBDD ñ y acentos

insisto en que esto se tiene que hacer en javascript, es mas facil reemplazar la cadena en el navegador y mandarla codificada al servidor
__________________
Linux no es el único S.O. libre, conoce a ReactOS el Windows Libre!
"Si mis respuestas te dan la calma, espárceme un poco de karma"
  #10 (permalink)  
Antiguo 30/03/2011, 06:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Problema ASP BBDD ñ y acentos

Cita:
Iniciado por Julcar Ver Mensaje
insisto en que esto se tiene que hacer en javascript, es mas facil reemplazar la cadena en el navegador y mandarla codificada al servidor
corres el riesgo que el usuario no tenga activado javascript
  #11 (permalink)  
Antiguo 30/03/2011, 10:47
Avatar de SUMMITE  
Fecha de Ingreso: julio-2002
Mensajes: 19
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema ASP BBDD ñ y acentos

Una cosa parecida me sucedió a mí, el problema (por decirlo de alguna manera), era el formato del documento asp, que por defecto en FP, es ASCII, así al utilizar otros programas más modernos para visualizar/crear o trabajar en programación se utiliza por defecto utf8.

El hecho de que la base de datos este o no en utf8 es intranscendente, así el problema de compatibilidad es solo en cómo se crean las páginas.

El documento archivo ASP, se creó en utf8 o ASCII?

Si se creó en ASCII hay que seguir con la misma dinámica i poner las cabeceras, por ejemplo:
content="text/html; charset=windows-1252"

Si por el contrario, se creó el documento con expresión web, matrix, HTML-KIT, Dreamweaver CS4, Visual Studio, etc etc y no se selecciono la opción ASCII predeterminada (por lo que se creó bajo utf8):

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

y se termino el problema con los caracteres extraños.

NOTA: cuando se modifica un documento en otro programa, este documento inequívocamente se formateara en el formato predeterminado del programa en cuestion (y encima mal). Los includes si son en diferente formato también afectaran aun cuando solo contengan código asp, no se pueden mezclar entre ellos o todo ASCII o todo utf8. (No las bd)

Esto es por experiencia, cuando decidí pasar todo un site a UTF 8 utilice varias formulas mágicas que se pueden encontrar en Google, ninguna dio resultado 100%, al final lo hice una a una, en ningún caso tuve que toquetear las bd's de Access ni transformar información que contienen recopilada en 10 años, simplemente crear de 0 el site (los documentos/archivos asp) y copiar&pegar el código, y como opción simple el programa "Microsoft Expression Web". El site ya funciona con utf8 etc etc ...

Esto es .. lo que a mí un día me sucedió y así lo solucione.
  #12 (permalink)  
Antiguo 30/03/2011, 11:32
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Respuesta: Problema ASP BBDD ñ y acentos

Hola SUMMITE, efectivamente la codificación del archivo (asp, html, php, loquesea) debe coincidir con el charset del meta http-equiv. Pero no comparto esto...

Cita:
El hecho de que la base de datos este o no en utf8 es intranscendente
... aunque decís que..

Cita:
en ningún caso tuve que toquetear las bd's de Access ni transformar información que contienen recopilada en 10 años,
... en dado caso, al ser access, no hay que tocarle nada en la BD puesto que, que yo sepa, no tiene esa opción. pero al ser la base de datos MySQL yo creo que si es necesario que el cotejamiento coincida con la codificación de la página.


Ahora, que cada uno haga las cosas como quiera, sepa o simplemente pueda. Si quieren usar HTMLencode, adelante. Si quieren usar javascript, también. Pero luego no me vengan llorando, ¿eh?
__________________
...___...
  #13 (permalink)  
Antiguo 30/03/2011, 11:43
Avatar de SUMMITE  
Fecha de Ingreso: julio-2002
Mensajes: 19
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema ASP BBDD ñ y acentos

jejeje! tienes razon, aunque creo que Mysql por defecto es utf8, (Desde la version de MySQl 4.1 que el charset por default es UTF-8) por lo que le di la pista de por donde creo van los tiros (el documento archivo en si mismo)

Última edición por SUMMITE; 30/03/2011 a las 11:52 Razón: mirar una cosita

Etiquetas: acentos, asp, bbdd
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:39.