Ir para o conteúdo

 Voltar a PW3270 Suporte
Tela cheia

Codificação de Caracteres

11 de Abril de 2013, 13:16 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 64 vezes
Olá,

Estou substituindo a bibilioteca do Personal Communications em aplicativos escritos em Java, pela versão 4.2.6-2174 do pw3270, usando o pw3270.jar e pw3270_jni.dll.

Operamos aqui com Windows (Vista/Seven) e quando uso o método setStringAt(int, int, String)  para escrever (por exemplo) o texto : "Não sendo possível a realização ..." o que aparace escrito na tela é "Não sendo possÃòvel a realização ...". Quando uso o método getEncoding() o retorno é ISO-8859-1 qué é a mesma codificação de caracteres do meu SO. Já tentei a codificação UTF-8 e o problema persiste. Interessante é que os campos *estáticos* da tela não apresentam problemas semelhantes, ou seja, quando uso o método getScreenContent(), se existirem  Strings estáticas como "Código" ou "Informação", por exemplo, elas retornam escritas normalmente... é como se o problema só exitisse no método setStringAt(...); antes o mesmo programa funcionava bem através da biblioteca do Personal Communications, o que enseja que não é um problema da aplicação residente no grande porte. Quando escrevo o texto (digitando) através da interface grafica do pw3270 também não tenho problemas; sem problemas também no copiar/colar... Alguma sugestão?

Grato,

Marcelo. 

Autor: Marcelo Bezerra


22 comentários

  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
    11 de Abril de 2013, 14:08

     

    Olá,

    Faz muito tempo desde que usei java pela última vez mas, pelo que me lembro, mesmo que o SO esteja usando ISO-8859-1 (alias, qual SO é esse? Windows normalmente usa CP-1256 e  linux usa UTF-8).

    Quanto à API, supondo-se que você está usando o pacote que era enviado com o pw3270 V4  tanto getScreenContentAt como a setStringAt trabalham com a string em ISO-8859-1 sem conversão; fica à cargo do aplicativo converter da codificação do java para o formato esperado. A menos que o comportamento da função GetStringUTFChars() (*) tenha mudado nesses últimos anos.  

    (*) A JNI usa a função GetStringUTFChars() interna do java para converter as strings de entrada/saída do formato java para o formato nativo C. 

  • Dbf7566bb4610eb924398e1a9e9b18f2?only path=false&size=50&d=404Renato H. de Oliveira(usuário não autenticado)
    4 de Novembro de 2013, 21:07

     

    Ola Marcelo, vc conseguiu resolver este problema, poderia por favor compartilhar?

    Obrigado

Essa comunidade não possui posts nesse blog