Sie suchen nach U + 10035, die außerhalb der Basic Multilingual Plane ist. Das heißt, Sie können \u
nicht verwenden, um den Wert anzugeben, da dieser nur U + 0000 bis U + FFFF behandelt - es gibt immer genau vier Hexadezimalziffern nach \u
. Du hast also jetzt U + 1003 ("MYANMAR LETTER GHA") gefolgt von '5'.
Leider bietet Java keine String-Literal-Form, die Zeichen außerhalb des BMP einfach zum Ausdruck bringt. Der einzige Weg, um es in einem wörtlichen von einschließlich (aber immer noch in ASCII) ist die UTF-16 surrogate pair Form zu verwenden:
String cross = "\ud800\udc35";
Alternativ können Sie die 32-Bit-Codepunkt Form als int
verwenden:
String cross = new String(new int[] { 0x10035 }, 0, 1);
(Diese beiden Zeichenfolgen sind gleich.)
Nachdem all das gesagt wurde, müsste Ihre Konsole diesen Charakter noch unterstützen - Sie müssen es versuchen, um herauszufinden, ob es das tut oder nicht.
Der Charakter Sie fragen ist von der Linear-B-Schrift. Willst du das wirklich? Im Allgemeinen werden Sie feststellen, dass Zeichen außerhalb des BMP in allgemeinen Schriftarten nicht häufig verfügbar sind. – parsifal
@parsifal: Ich habe versucht, Unicode-Kunst für Utility-Umfragen am Straßenrand zu machen. – Dog
So etwas wundert mich, habe ich das in meiner eigenen Programmiersprache richtig verstanden? '$ txr -c '@ (bind ein" \ x10035 ")' 'Output: ' a = "" '. Jep! Na sicher; Ich würde keine hexadezimalen Ziffern abschneiden, die willkürlich ein Zeichen bei vier angeben. – Kaz