Reputation: 93
I want to work with SMP(Supplementary Multilingual Plane) in Java. Actually, I want to print a character whose codepoint is more than 0xFFFF. I used this line of code:
int hexCodePoint = Character.toCodePoint('\uD801', '\uDC02' );
to have the codepoint of a special character. But how can I print this unicode character to the console?
Thank you in advance for your help.
Upvotes: 8
Views: 1549
Reputation: 108899
System.out.println("\uD801\uDC02");
Now, whether U+10402 (𐐂) actually turns up on the console depends on:
System.out
converts to will transform the data to a lossy encoding (like a Windows "ANSI" codepage or MacRoman); see defaultCharset()System.out
transforms the data to (sometimes, this is not the default on Windows consoles which use old OEM mappings)Solutions to these problems will be platform-specific.
Upvotes: 4
Reputation: 242696
String s = new StringBuilder().append("Here is a codepoint: ").appendCodePoint(hexCodePoint).toString();
System.out.println(s);
Note that in Windows it wouldn't produce the expected output due to the limited Unicode capabilities of the console
EDIT: Or Character.toChars(hexCodePoint)
to produce char[]
Upvotes: 5