¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo consultar caracteres chinos desde la base de datos de Oracle utilizando el adaptador JDBC

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Hola,

Tengo un escenario en el que debo consultar desde la base de datos de Oracle utilizando el adaptador JDBC. El problema es que hay algunos caracteres chinos en la tabla del sitio.

¿Cómo puedo consultar esos caracteres chinos si no encuentro ninguna configuración de página de códigos en el adaptador de emisor/receptor? Por favor, aconseje.

Gracias y saludos cordiales

Fernand

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

WIN1252 es para Europa occidental y no contiene caracteres chinos.

Creo que tienes caracteres chinos en una base de datos que no los admite. Por lo tanto, todas las entradas en la base de datos se consideran como caracteres de 1 byte.

En mi opinión, este es un problema de la base de datos y no deberías intentar resolverlo con PI. Soluciona el problema en la base de datos misma.

Si deseas almacenar caracteres chinos en esa base de datos, debes configurarla a Unicode (UTF-8, UTF-16).

Saludos

Stefan

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Stefan,

Después de confirmar nuevamente con el usuario, la base de datos no está en UTF-8

NLS_CHARACTERSET = WE8MSWIN1252

NLS_NCHAR_CHARACTERSET = AL16UTF16

No tengo idea de cómo convertirlo, ¿podrías aconsejar algún UDF de muestra para la conversión?

Gracias y saludos cordiales

Fernand

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Lo siento, el resultado esperado es:

Jugo de Naranja (Sr. Juicy) 金裝果汁先生橙汁 2.35L

Gracias y saludos cordiales

Fernand

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Stefan

Gracias por tu opinión,

Pero no puedo decir que sea un problema del cliente.

He implementado con éxito este código a continuación para convertir de nuevo al carácter chino correcto.

// Crear el codificador y decodificador para la codificación de caracteres

String testString = "Juice, Orange (Mr Juicy) a÷﹐EaG¥A¥y¥I?i¥A 2.35L";

Charset charset = Charset.forName("big5");

CharsetDecoder decoder = charset.newDecoder();

Charset charset1 = Charset.forName("windows-1252");

CharsetEncoder encoder = charset1.newEncoder();

a = testString;

String b = new String();

try {

ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(a));

CharBuffer cbuf = decoder.decode(bbuf);

a = cbuf.toString();

} catch (CharacterCodingException cce) {

String errorMessage = "Excepción durante la codificación/decodificación de caracteres: " + cce.getMessage();

}

return a;

Todos los caracteres chinos han sido codificados correctamente. Por favor, dame tu opinión o comentario sobre el código.

Saludos cordiales

Fernand

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?