Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Asp convertir campo Oracle ISO en una asp codificada en UTF-8

Estas en el tema de Asp convertir campo Oracle ISO en una asp codificada en UTF-8 en el foro de Oracle en Foros del Web. Buenas tardes, no he encontrado ningún mensaje en el foro de este estilo, si es así, lo siento... Tengo una Asp codificada en <META http-equiv=Content-Type ...
  #1 (permalink)  
Antiguo 03/04/2012, 05:03
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Asp convertir campo Oracle ISO en una asp codificada en UTF-8

Buenas tardes,
no he encontrado ningún mensaje en el foro de este estilo, si es así, lo siento...
Tengo una Asp codificada en
<META http-equiv=Content-Type content=text/html;charset=utf-8>

y una select de Oracle que devuelve un campo con los acentos etc mal configurados...

Como puedo hacer una select que me transforme de Iso a Utf-8?
Había probado esto pero no me funciona:

CONVERT(campo, 'AL32UTF8', 'WE8ISO8859P1')

muchísimas gracias
  #2 (permalink)  
Antiguo 03/04/2012, 16:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Asp convertir campo Oracle ISO en una asp codificada en UTF-8

Esto se configura con las variables de entorno del cliente de Oracle, en el registro de Windows del servidor IIS tienes la entrada HKLM\Software\Oracle\<Oracle_Home_Name>\NLS_LANG que puedes configurar con SPANISH_SPAIN.AL32UTF8 o SPANISH_SPAIN.WE8ISO8859P1.

Saludos
  #3 (permalink)  
Antiguo 04/04/2012, 08:06
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Respuesta: Asp convertir campo Oracle ISO en una asp codificada en UTF-8

Muchas gracias por tu respuesta, pero el tema no está en la configuración del Servidor si no en la misma página .asp que tiene que convivir con codificación UTF-8 con consultas de Oracle que muestran información que vienen en ISO....

Por eso estoy intentando buscar una solución que cuando recibo el campo de Oracle me lo transforme en codificación UTF-8.

Gracias de todas maneras...
  #4 (permalink)  
Antiguo 04/04/2012, 17:59
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Asp convertir campo Oracle ISO en una asp codificada en UTF-8

Te comento más en detalle como funciona la codificación de caracteres en Oracle, tal vez te ayude a resolver el problema.

A nivel lógico tienes 3 capas: la codificación de la base de datos Oracle, la codificación del cliente de Oracle y la codificación de la aplicación, lo que supone siempre una conversión de los datos cuando viajan entre capas de diferente codificación. y esto ocurre independientemente de que a nivel físico las capas estén en un mismo servidor o en varios.

1. Base de datos Oracle, la codificación se define al momento de crear la base, se puede cambiar a posterior aunque es un proceso limitado y costoso que pocas veces justifica. Esta información la tienes con la consulta:

Código:
select property_value
 from database_properties
 where property_name = 'NLS_CHARACTERSET';
2. Cliente de Oracle, en Windows, la codificación del cliente se define con la clave del registro HKLM\Software\Oracle\<Oracle_Home_Name>\NLS_LANG, y representa el valor por defecto para todas las conexiones que se hagan a la base de datos, ya sean desde ado, ado.net, oci, odbc, jdbc, etc.

3. Aplicación, dependiendo del lenguaje o del sistema operativo, las aplicaciones pueden tener diferentes codificaciones, como el ejemplo de asp y utf8.

En tu caso, la capa aplicación es el IIS con ASP, que utiliza un conjunto de librerías (ej: ado -> oledb -> oci.dll) como capa cliente para conectarse a la base de datos. Si la aplicación es UTF8 y la base de datos es WE8ISO8859P1, lo recomendado es que la conversión la haga el cliente de Oracle configurando la clave NLS_LANG=SPANISH_SPAIN.AL32UTF8.

Saludos

Etiquetas: asp, iso, select, utf-8, formulario, campos
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:23.