¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como consultar caracteres chinos da base de dados Oracle usando o adaptador JDBC

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

Olá,

Tenho um cenário em que preciso consultar o banco de dados Oracle usando o adaptador JDBC. O problema é que há alguns caracteres chineses na tabela do site.

Como posso consultar esses caracteres chineses se não encontrar nenhuma configuração de página de códigos no adaptador de emissor/receptor? Por favor, aconselhe.

Obrigado e cumprimentos,

Fernand

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

4 Respuestas

0
Cargando...

WIN1252 é para a Europa ocidental e não contém caracteres chineses.

Acredito que você tenha caracteres chineses em um banco de dados que não os suporta. Portanto, todas as entradas no banco de dados são consideradas como caracteres de 1 byte.

Na minha opinião, este é um problema do banco de dados e não deve ser resolvido com PI. Resolva o problema no próprio banco de dados.

Se deseja armazenar caracteres chineses nesse banco de dados, deve configurá-lo para Unicode (UTF-8, UTF-16).

Saudações

Stefan

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

Olá Stefan,

Após confirmar novamente com o usuário, o banco de dados não está em UTF-8

NLS_CHARACTERSET = WE8MSWIN1252

NLS_NCHAR_CHARACTERSET = AL16UTF16

Não tenho ideia de como convertê-lo, você poderia aconselhar algum UDF de exemplo para a conversão?

Obrigado e cumprimentos

Fernand

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

Desculpe, o resultado esperado é:

Suco de Laranja (Sr. Juicy) ???????? 2.35L

Obrigado e cumprimentos cordiais

Fernando

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

Olá Stefan

Obrigado pela tua opinião,

Mas não posso dizer que seja um problema do cliente.

Implementei com sucesso o código a seguir para converter de volta ao caractere chinês correto.

// Criar o codificador e decodificador para a codificação 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 = "Exceção durante a codificação/decodificação de caracteres: " + cce.getMessage();

}

return a;

Todos os caracteres chineses foram codificados corretamente. Por favor, dê-me a tua opinião ou comentário sobre o código.

Cumprimentos

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?