Получение другого результата от чтения AIX Java-кода специальными символами - PullRequest
0 голосов
/ 02 января 2019

Я получаю другой результат при запуске моего Java-кода из AIX.

public class TestChars {

    public static void main(String[] args) {
        String s = "…";
        for(char c: s.toCharArray())
            System.out.println(" Character Name : " + Character.getName(c) + " Simbol : '"+c+"' Code : " + Integer.toHexString((int)c));
    }
}

AIX:

Character Name : LATIN SMALL LETTER A WITH CIRCUMFLEX Simbol : '?' Code : e2
Character Name : LATIN 1 SUPPLEMENT 80 Simbol : '?' Code : 80
Character Name : BROKEN BAR Simbol : '?' Code : a6

Но вот ожидаемый результат:

Character Name : HORIZONTAL ELLIPSIS Simbol : '…' Code : 2026

Мне все еще неясно, где проблема или что нужно для того, чтобы ibm java-версия из aix дала ожидаемый результат.

1 Ответ

0 голосов
/ 02 января 2019

Это не зависит от AIX: компилятор предполагает, что входные данные находятся в ISO-8859-x, но на самом деле это в UTF-8

Возможные решения:

#1: LC_CTYPE=en_US.UTF-8 javac TestChars.java
#2: javac -encoding UTF-8 TestChars.java

Также вы можете использовать \ u последовательности в источнике:

String s = "\u2026";
...