conversão ascii para ebcdic e vice-versa

7 respostas
G

Amigos,

Estou trabalhando em uma solução e venho encontrando algumas dificuldades na conversão asc2ebc.
Fazia isso em outras linguagens com as mãos nas costas… Porém a característica da plataforma JVM em relação ao UNICODE vem gerando alguns resultados inusitados.

Vou citar um exemplo, estou usando encode/decode para isso. Em princípio vejo que funcionada praticamente 100%, mas existe uma situação que me incomoda e muito.

Por exemplo :

Não consigo converter o carácter “a”… a plataforma me retrona \uFFFD (nao “convertível”)

Alguém já passou por isso?

Abraços
Daniel

7 Respostas

E

opa eu fiz um conversor… mas em C#… e foi converder de EBCDIC para ASCII :stuck_out_tongue:

mas para converter o a letra “a” em hexadecimal para poder montar o EBCDIC é assim:

java.lang.Integer.toHexString('a')
E

Epa pelo que eu lembro de EBCDIC… fiz aqui este exemplo:

public class Main { public static void main(String[] args) { System.out.println(toEBCDIC("testando EBCDIC...1 / 2 / 3", 30)); } public static String toEBCDIC(String text, int size) { StringBuilder out = new StringBuilder(); char[] textChars = text.toCharArray(); for (int x = 0; x < size; x++) { if (x < textChars.length) { out.append(Integer.toHexString(textChars[x]).toUpperCase()); } else { out.append("00"); } } return out.toString(); } }

Output:

74657374616E646F204542434449432E2E2E31202F2032202F2033000000

É isto não é??? :lol:

G

Agradeço a dica,

Mas ainda não é isso que procuro.

Na verdade isso tudo me parece um bug na plataforma.

Estou usando assim :

sReturn = (new String(new String(s.getBytes(),“ISO8859_1”).getBytes(“Cp500”)));

O interessante é que para maiúsculas funciona perfeitamente, o problema é o “a”.

Abraços

G

Não havia visto seu segundo código…

Vou checar…

T

Você usou “Cp500”, veja se existe outra code page que também converta para EBCDIC. Acho que você tem de usar “Cp037”.

E

mas precisa usar encoders!?

na versão q fiz em C# não usei, e funciona bem, até hoje sem queixas, mas tb é sempre em sistema rwindows, se fosse para rodar em outros sistemas com encoder malucos ai já não garanto :lol:

G

Já usei diversas páginas… Cp1047, Cp037… Cp500…

É dureza… Não faz sentido converter quase tudo… ou funciona para tudo, ou nada…
Agora não converter a letra “a”… :frowning:

Criado 16 de maio de 2008
Ultima resposta 16 de mai. de 2008
Respostas 7
Participantes 3