여기의 다른 답변은 U + FFFF (하나의 char 인스턴스를 다루는 답변)까지의 유니 코드 만 지원하거나 실제 기호 (Character.toChars ()에서 멈추는 답변 또는 잘못된 방법 사용)를 얻는 방법을 알려주지 않습니다. 그 후), 여기에 내 대답도 추가하십시오.
추가 코드 포인트도 지원하려면 다음을 수행해야합니다.
// this character:
// http://www.isthisthingon.org/unicode/index.php?page=1F&subpage=4&glyph=1F495
// using code points here, not U+n notation
// for equivalence with U+n, below would be 0xnnnn
int codePoint = 128149;
// converting to char[] pair
char[] charPair = Character.toChars(codePoint);
// and to String, containing the character we want
String symbol = new String(charPair);
// we now have str with the desired character as the first item
// confirm that we indeed have character with code point 128149
System.out.println("First code point: " + symbol.codePointAt(0));
또한 어떤 변환 방법이 작동하고 작동하지 않는지에 대한 빠른 테스트를 수행했습니다.
int codePoint = 128149;
char[] charPair = Character.toChars(codePoint);
String str = new String(charPair, 0, 2);
System.out.println("First code point: " + str.codePointAt(0)); // 128149, worked
String str2 = charPair.toString();
System.out.println("Second code point: " + str2.codePointAt(0)); // 91, didn't work
String str3 = new String(charPair);
System.out.println("Third code point: " + str3.codePointAt(0)); // 128149, worked
String str4 = String.valueOf(codePoint);
System.out.println("Fourth code point: " + str4.codePointAt(0)); // 49, didn't work
String str5 = new String(new int[] {codePoint}, 0, 1);
System.out.println("Fifth code point: " + str5.codePointAt(0)); // 128149, worked