Hola,
No he tenido la oportunidad de usar esa impresora exactamente, pero creo que el problema sigue estando aquí:
Aunque no tengo ni idea qué es 'line' ni 'command', voy a suponer que 'command' es un comando, es decir, una serie de bytes específicos de la tabla ASCII, que tienen un significado exacto para la impresora; como el caso de 'ç' que deber ser exactamente el ordinal 0x87 en hexadecimal de la tabla ASCII.
Como te pudiste dar cuenta, Java usa conversión de tablas de caracteres y a veces es difícil detectar que tabla está usando exactamente. (Por lo menos para mí). Pero posiblemente puedas cambiar lo siguiente, solo por probar:
Código Java:
Ver originalfinalComand.toCharArray()
finalComand.getBytes("ASCII")
El método getBytes() acepta como parámetro un charset o un string con el nombre de un charset, pero devuelve un array de bytes en lugar de un array de chars como lo hace toCharArray. La diferencia creo que va a ser evidente para ti, por lo que te pudiste dar cuenta al intentar mostrar el valor ordinal de ç.
En Java 6 podrías usar:
Código Java:
Ver originalbyte[] fc = finalComand.getBytes("ASCII");
for (byte b : fc) {
// show the value of byte 'b' on the screen
// send the byte 'b' to the printer
}
Saludos,