tablas simbolos graficos convert charmap java unicode

java - simbolos - unicode text table



¿Cómo poner un carácter Unicode suplementario en un literal de cadena? (2)

"Funciona para mí", ¿cuál es exactamente el problema?

public static void main (String[] args) throws Exception { int cp = 0x10400; String text = "test /uD801/uDC00"; System.out.println("cp: " + cp); System.out.println("found: " + text.codePointAt(5)); System.out.println("len: " + text.length()); }

Salida:

cp: 66560 found: 66560 len: 7

Tenga en cuenta que la longitud, como la mayoría de los métodos de String, trata con caracteres, no con caracteres Unicode. Tanto para el increíble soporte de Unicode :)

Feliz codificacion

¿Cómo colocar un carácter Unicode suplementario (por ejemplo, punto de código 10400 ) en una cadena literal? He intentado poner un par de sustitutos como este:

String text = "TEST /uD801/uDC00"; System.out.println(text);

pero no parece funcionar.

ACTUALIZAR:

La buena noticia es que la cadena está construida correctamente.
Matriz de bytes en UTF-8: 54 45 53 54 20 f0 90 90 80
Matriz de bytes en UTF-16: fe ff 0 54 0 45 0 53 0 54 0 20 d8 1 dc 0

Pero la mala noticia es que no se imprime correctamente (en mi caja de Fedora) y puedo ver un cuadrado en lugar del símbolo esperado (mi consola no es compatible con Unicode correctamente).


Se supone que funciona utilizando:

System.out.println( "text = " + new String(Character.toChars(h)) );

Pero la salida es:

text = ?