Dúvida sobre CharacterSet...urgente!

4 respostas
W

Pessoal preciso implementar em Java uma rotina de criptografia que utilizamos feita em Delphi. O Delphi usa caracteres ASCII de 8 bits e a criptrografia quase sempre me gera caracteres entre 128 e 255 na tabela ASCII. Preciso que o Java reconheça aqueles caracteres diferentes, mas não sei como fazer isso. Quando o número ultrapassa 127 e não reconhece os caracteres e me traz tudo como uma interrogação(?). Tentei passar minha string pra UTF8, mas não deu certo, não consegui.

Alguém sabe como fazer isso e pode me ajudar? Estrou precisando disso urgente. Os caracteres que preciso reconhecer são esses aí que link remete.

http://www.catabits.com.br/exibe.php?sec=curso&mat=8

Obrigado.

4 Respostas

H

Posta o código pra gente olhar como você está tentando ler.

W

Só codifiquei o Encode. Ainda falta o Decode. Execute pra você ver, vai aparece a seguinte saída: ??ó?

public class EncodeDecode{
	
private String key = "RarbOcodNenfAgahLiljDkolmSnsoCpcqHrhsMwmxIyizTtzhk";
	
	public int Asc(String instring){
		
		int retorno = 0;
		try{						
			if( instring == "" )
				retorno = 0;
			else			
				retorno = (int) instring.charAt(0);
		}
		catch(Exception e){
			e.printStackTrace();
		}	
		
		return retorno;
	}
	
	public String Encode(String dado){
		
		String retorno = "";
		int l, i, j;
		
		try{
			
			byte[] ascii = dado.getBytes("UTF8");
			String strascii = new String(ascii,"UTF8");
			
			j = 0;			
			for(i=0; i<strascii.length(); i++){
				
				l = Asc(strascii.substring(i,i+1)) + Asc(key.substring(j,j+1));				
				
				if ( j == 49 )
					j = 0;
				if ( l > 255 )
					l = l - 256;
				
				j++;
				retorno = retorno + (char) l;				
			}
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
		return retorno;
	}
	
	// Falta implementar o decode
	public String Dencode(String dado){
		
		String retorno = "";
		try{
		}
		catch(Exception e){
			e.printStackTrace();
		}
		
		return retorno;
	}
	
	public static void main(String args[]){
		
		try{
			String sentenca = "1204";
			byte[] ascii = sentenca.getBytes("ASCII");
			String strascii = new String(ascii,"ASCII");
			
			EncodeDecode ed = new EncodeDecode();
			System.out.println(ed.Encode(strascii));
			
					}
		catch(Exception e){
			e.printStackTrace();
		}
		
	}
	
}
W

se no main eu colocar UTF8, dá a mesma coisa.

String sentenca = "1204";
byte[] ascii = sentenca.getBytes("UTF8");
String strascii = new String(ascii,"UTF8");

como disse, eu preciso reconhecer os caracteres de 128 à 255 na tabela ASCII, além dos 127 tradicionais.

J

ja tivemos esse problema

bom nao achamos um jeito do java reconhecer mais de 128 caracteres

se achar um jeito posta ai

:))

Criado 30 de julho de 2004
Ultima resposta 30 de jul. de 2004
Respostas 4
Participantes 3