Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/02/2010, 14:14
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Problema salida estandar UNIX jar ejecutado desde PHP

Hola,

Cada lenguage y sistema trabaja una tabla de caracteres diferente. En mi caso, Java usa UTF, PHP standard usa ASCII, y la consola usa la página de códigos 850, pero no es obligatorio que sea de esta forma.

¿Problematico no?

Que sucede realmente ... la letra ñ en ASCII ocupa 1 byte y su código es A4h en hexadecimal, en Unicode ocupa 2 bytes y su código es 00F1h, en la tabla de códigos 850 también ocupa 1 byte y su código es A4h igual al ASCII.

Si pasas la letra ñ de UTF que ocupa 2 bytes, a la tabla ASCII que no entiende códigos de 2 bytes, cuando conviertes el código 00F1h a ASCII queda 00h + F1h. ASCII interpreta eso como 2 letras, puesto que no entiende códigos de 2 bytes. Y normalmente va a apacer algo parcido a esto ñ, lo que algunos llaman 'simbolos raros' .

Pero ahora viene lo mejor ... si el tipo de letra (font) que usas en la consola, programa, etc., es diferente a la tabla UTF las letras van a cambiar de lugar. Por ejemplo ... escribe un texto cualquiera en el Block de notas y cambia la fuente a Windgings, entonces la letra A se convierte en A.

Lo más probable es que no haya quedado claro en lo más mínimo... Pero busca información sobre las tablas de caracteres y como se representan cada una,

Saludos,

ps:

Posiblemente me haya equivocado en los code points o algo mas .. simplemente es para ejemplificar como funciona las tablas de caracteres.