2010-01-20 18 views
7

Quiero trabajar con SMP (Plano multilingüe complementario) en Java. En realidad, quiero imprimir un personaje cuyo punto de código sea más que 0xFFFF. He utilizado esta línea de código:Plano multilingüe complementario Unicode en Java

int hexCodePoint = Character.toCodePoint('\uD801', '\uDC02'); 

que tienen el punto de código de un carácter especial. Pero, ¿cómo puedo imprimir este carácter Unicode en la consola?

Gracias de antemano por su ayuda.

Respuesta

5
String s = new StringBuilder().append("Here is a codepoint: ").appendCodePoint(hexCodePoint).toString(); 
System.out.println(s); 

Tenga en cuenta que en Windows no produciría el resultado esperado debido a las capacidades limitadas de Unicode la consola

EDIT: O Character.toChars(hexCodePoint) para producir char[]

4
System.out.println("\uD801\uDC02"); 

Ahora, si T +10402 (& # x10402;) en realidad aparece en la consola depende de:

  1. si la codificación System.out se convierte en transformará los datos a una codificación con pérdida (como una página de códigos "ANSI" de Windows o MacRoman); ver defaultCharset()
  2. si la consola es compatible con la codificación System.out transforma los datos para (a veces, este no es el predeterminado en las consolas de Windows que utilizan viejas asignaciones OEM)
  3. si la consola tiene compatibilidad con las fuentes para el personaje

Las soluciones a estos problemas serán específicas de la plataforma.

Cuestiones relacionadas