Guys,
Não encontrei nenhum tópico a respeito que me ajudasse, assim, tive que abrir o que vos lê agora…
Eu tenho um método que encripta uma String, conforme podem ver abaixo:
[code]public static byte[] encript(String param) throws EncryptorException{
try {
StringBuilder builder = new StringBuilder();
char[] chars = param.toCharArray();
for(char c : chars){
int code = (int)c;
if (code >= 97 && code <= 122)
if (code == 122){
builder.append((char)(code + 38));
}else
if (code == 105 || code == 106){
builder.append((char)(code + 22));
}else
if(code == 109){
builder.append((char)(code + 48));
}else{
builder.append((char)(code - 96));
}
if (code >= 224 && code <= 252){
builder.append((char)(code - 128));
}
if (code >= 48 && code <= 57)
if (code >= 54 && code <= 57){
builder.append((char)(code + 87));
}else
if (code == 53){
builder.append((char)(code + 76));
}else{
builder.append((char)(code - 21));
}
}
return builder.toString().getBytes("ISO8859_1");
} catch (Exception e) {
// TODO: handle exception
throw new EncryptorException(e.getMessage());
}
}[/code]
O método me retorna um byte[] com os valores 5,4,19,15,14,29,27,27,-112, sendo que o correto seria 5,4,19,15,14,29,27,27,144. Acredito que o problema esteja no encoding, onde no Java, o padrão é o UTF8, sendo que precisamos utilizar o padrão ISO-8859-1. E mesmo usando “getBytes(“ISO8859_1”)”, ainda vem com o valor errado…
Alguém tem algumas luz? Como por exemplo, criar um StringBuilder que construa de fato uma String em ISO88591?