Ascii de un caracter raro ( Urgente )
Hola a todos. Estoy realizando un programa que tiene como objetivo leer algunos datos de una tabla de Sybase para despues codificarlos y por ultimo mandarlos un archivo de texto.
Pero tengo el problema de que cuando lo codifica al no encontrar un caracter raro me agrega a la cade un ? o algun otro caracter que si exista por lo que cuando lo trato de decodificar me manda otros caractes y no los originales.
Este es un ejemplo:
#Fecha Generacion|07112003|1100
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter | Su Ascii 124 La suma 155 El equivalente ?
El caracter 3 Su Ascii 51 La suma 82 El equivalente R
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 2 Su Ascii 50 La suma 81 El equivalente Q
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 7 Su Ascii 55 La suma 86 El equivalente V
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter | Su Ascii 124 La suma 155 El equivalente ?
El caracter n Su Ascii 110 La suma 141 El equivalente ?
El caracter o Su Ascii 111 La suma 142 El equivalente ?
El caracter i Su Ascii 105 La suma 136 El equivalente ?
El caracter c Su Ascii 99 La suma 130 El equivalente ?
El caracter a Su Ascii 97 La suma 128 El equivalente ?
El caracter r Su Ascii 114 La suma 145 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter n Su Ascii 110 La suma 141 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter G Su Ascii 71 La suma 102 El equivalente f
El caracter Su Ascii 32 La suma 63 El equivalente ?
El caracter a Su Ascii 97 La suma 128 El equivalente ?
El caracter h Su Ascii 104 La suma 135 El equivalente ?
El caracter c Su Ascii 99 La suma 130 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter F Su Ascii 70 La suma 101 El equivalente e
El caracter # Su Ascii 35 La suma 66 El equivalente B
Cuando se decofica sale esto : #S%%%e%a%ORRe%%%caI%%%%6.5
Esto porque en lugar de los caracteres que realmente iban pone "?"
El codigo para codificar es:
public static String encriptar(Object lacadena) {
StringBuffer buff; // temporal
int tamano; // tamano de str
char c; // temporal
String str = lacadena.toString();
System.out.println(str);
if (str.length() > 80) {
str = str.substring(0, 80);
}
tamano = str.length();
buff = new StringBuffer(tamano);
for (int i = tamano - 1; i >= 0; i--) {
c = str.charAt(i);
buff.append((char) (c + tamano));
}
return buff.toString().trim();
} // fin encriptar
Alguie tiene alguna idea del porque sucede esto, o que debo configurar para que remediarlo. ( Esto sucede en Windows XP y UNIX)
Mil gracias
Pero tengo el problema de que cuando lo codifica al no encontrar un caracter raro me agrega a la cade un ? o algun otro caracter que si exista por lo que cuando lo trato de decodificar me manda otros caractes y no los originales.
Este es un ejemplo:
#Fecha Generacion|07112003|1100
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter | Su Ascii 124 La suma 155 El equivalente ?
El caracter 3 Su Ascii 51 La suma 82 El equivalente R
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter 2 Su Ascii 50 La suma 81 El equivalente Q
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 1 Su Ascii 49 La suma 80 El equivalente P
El caracter 7 Su Ascii 55 La suma 86 El equivalente V
El caracter 0 Su Ascii 48 La suma 79 El equivalente O
El caracter | Su Ascii 124 La suma 155 El equivalente ?
El caracter n Su Ascii 110 La suma 141 El equivalente ?
El caracter o Su Ascii 111 La suma 142 El equivalente ?
El caracter i Su Ascii 105 La suma 136 El equivalente ?
El caracter c Su Ascii 99 La suma 130 El equivalente ?
El caracter a Su Ascii 97 La suma 128 El equivalente ?
El caracter r Su Ascii 114 La suma 145 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter n Su Ascii 110 La suma 141 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter G Su Ascii 71 La suma 102 El equivalente f
El caracter Su Ascii 32 La suma 63 El equivalente ?
El caracter a Su Ascii 97 La suma 128 El equivalente ?
El caracter h Su Ascii 104 La suma 135 El equivalente ?
El caracter c Su Ascii 99 La suma 130 El equivalente ?
El caracter e Su Ascii 101 La suma 132 El equivalente ?
El caracter F Su Ascii 70 La suma 101 El equivalente e
El caracter # Su Ascii 35 La suma 66 El equivalente B
Cuando se decofica sale esto : #S%%%e%a%ORRe%%%caI%%%%6.5
Esto porque en lugar de los caracteres que realmente iban pone "?"
El codigo para codificar es:
public static String encriptar(Object lacadena) {
StringBuffer buff; // temporal
int tamano; // tamano de str
char c; // temporal
String str = lacadena.toString();
System.out.println(str);
if (str.length() > 80) {
str = str.substring(0, 80);
}
tamano = str.length();
buff = new StringBuffer(tamano);
for (int i = tamano - 1; i >= 0; i--) {
c = str.charAt(i);
buff.append((char) (c + tamano));
}
return buff.toString().trim();
} // fin encriptar
Alguie tiene alguna idea del porque sucede esto, o que debo configurar para que remediarlo. ( Esto sucede en Windows XP y UNIX)
Mil gracias