Como paso caracteres especiales a la base

Tengo un formulario en el cual el usuario debe poner el apellido, ahí debería permitir poner acentos, eñes, etc. Hasta ahí esta todo ok, pero el problema que cuando lo guarda en la base, a los caracteres especiales los modifica y los pone de otra forma, con lo cual tengo el problema que si cargo un apellido (por ejemplo) Miñón, me lo permite grabar en la base sin problemas, pero cuando lo busco, no lo encuentro porque el campo tiene (por ejemplo)Mi&/#n. El problema se produce cuando le doy esta instrucción <% rs. Fields("apellido")= Session("variapellido")%>, porque si miro la variable esta bien, pero en el rs ya esta como lo graba en la base.

2 respuestas

Respuesta
1
Más que pasar los caracteres especiales a la base de datos, haz que los datos recogidos de la base de datos sean traducidos correctamente en el explorer.
En internet hay un montón de scripts para esto; es lo mejor que se me ocurre para tu situación.
Vas a tener que disculpar mi ignorancia, pero hace dos meses empecé a programar en asp, y no tengo ni la más remota idea. Lo raro de todo esto es que a mis compañeros de trabajo les permite perfectamente, pero lamentablemente acá nadie sabe que puede ser. Yo calculo que la cosa debe estar por el lado de la instalación del SQL server, desde ya muchas gracias, si es importante lo del servidor en la próxima te averiguo.
Gracias
Eso debe ser problema del servidor, porque yo tengo una web y agrego textos con ñ y tildes y las admite sin problemas. ¿Qué servidor usas?
Respuesta
1
Creo que tu problema puede estar en distintos sitios...
Tiene pinta por lo que comentas de que tiene algo que ver con el idioma seleccionado en la base de datos. No la tendrás en ingles, ¿no? ¿O en algún idioma que no sea español? De ser así los caracteres se están convirtiendo incorrectamente. Reinstala la base de datos en el idioma correspondiente.
Otra opción es que tengas el MDAC en un idioma que no sea el español -o el ODBC. ¿Sabes en que idioma lo tienes?
Y ya por ultimo puede que todo se resuelva si en lugar de utilizar rs.Fields.Value ("nombrecampo").valor = xxxx usas SQL como tiene que ser. De esta manera evitas problemas de este tipo y ademas el mantenimiento de bbdd es mucho mas sencillo.
Mira, creo que ya encontré la madeja del ovillo, te comento que estuve charlando con el webmanager, y lo estuvimos viendo juntos, el tema pasa que las bases están en un servidor y los asp en otro, y el odbc para ejecutar esto "aparentemente" no esta respetando el español, con lo cual me dijo que iba a pasar un reporte a SUN. Así que voy a esperar a ver que novedades tengo. Desde ya te agradezco las molestias que te tomaste.
Tu pregunta es algo confusa. No se que es lo que tienes en la bbdd ni lo que tienes en la sesión. Pero creo que tu problema viene de no utilizar el Server. HTMLEncode (string)
¿Exactamente qué tienes en la base de datos? ¿Qué tienes en la variable de Session?
Seria largo de explicar, así que vamos a trabajar con ejemplos, tengo una base de datos con un solo campo (por ej. apellido). Y estos son los pasos que sigo, primero el formulario (una sola ventana donde va el apellido), segundo lo que cargo en esa ventana del formulario lo paso a una variable session, en este segundo paso hago diferentes controles que no vienen al caso, y el tercer paso es el que lo carga en la base con la instrucción que te puse en la anterior nota. Espero que te haya aclarado un poco. Y desde ya muchas gracias.
A ver...
Primero te recomiendo que uses
rs.Fields ("nombrecampo").Value=xxxxx
A veces si no pones lo de value da problemas.
Segundo, cuándo dices "si miro la variable esta bien, ¿pero en el rs ya esta como lo graba en la base" que quieres decir?
Si haces un
Response.write Server.HTMLEncode (Session ("variapellido")) que obtienes si el apellido es "Muñoz"?
Porque el contenido de eso es lo que estas metiendo en la base de datos. Eso no cambia mágicamente. Porque según entiendo en Session tenemos Muñoz, y al grabarse en la bbdd tenemos que se graba Muñoz o algo así, ¿no?
Otra cosa que a lo mejor puede ayudar... ¿cómo obtienes del formulario el valor? Request. ¿QueryString? Request. Form? ¿Request a pelo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas