2009-08-03 19 views
5

Tengo un problema en el momento en que mi entorno de prueba no persiste el carácter de marca registrada "™" en la base de datos. Cuando ingreso los datos del formulario, lo presento, puedo ver que en el lado del servidor, la solicitud tiene el carácter correctamente codificado ™, pero luego cuando se llama al método "saveOrUpdate()" de hibernación, los datos en el la tabla aparece como un signo de interrogación al revés.Hibernate Oracle y codificación de caracteres

Estoy usando SqlDeveloper para inspeccionar la tabla, y puedo cambiar el carácter manualmente a a ™ pegando directamente en la fila y luego confirmar, y funciona.

Así que he asumido que los métodos de persistencia de hibernación no funcionan correctamente.

Im en una pérdida aquí, en realidad, ya no sé qué probar, he puesto:

<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">utf-8</property> 

propiedades en el archivo de configuración, sin suerte.

Mis columnas en las tablas son NVARCHAR2 (400 CHAR) (aunque originalmente eran solo VARCHAR2, pero las cambié durante la depuración de este problema).

Cualquier ayuda aquí es muy apreciada.

Marcos

Respuesta

6

Ok, por lo que resulta que lo que tenía que hacer era establecer la propiedad conexión defaultNChar a cierto.

Hice esto a través del archivo de contexto de mi aplicación en Tomcat.

El artículo que me iluminó fue here.

+0

Hola, no estamos usando NCHAR pero tenemos problemas con el carácter nórdico. Son parte de ISO-8859-1. Parece que al escribir en la base de datos, hace algo de magia. –

+0

el enlace está ahora muerto ... :( – xenoterracide

Cuestiones relacionadas