Что означают эти специальные символы в Java?

Я смотрел на некоторые из кода jdk. Я нашел этих персонажей. Может кто-нибудь объяснить мне, что они означают.

public static String quote(String s) {
    int slashEIndex = s.indexOf("\\E");        // What does this mean. Is this a special char in java. if so what does this do.
    if (slashEIndex == -1)
        return "\\Q" + s + "\\E";          

    StringBuilder sb = new StringBuilder(s.length() * 2);
    sb.append("\\Q");
    slashEIndex = 0;
    int current = 0;
    while ((slashEIndex = s.indexOf("\\E", current)) != -1) {
        sb.append(s.substring(current, slashEIndex));
        current = slashEIndex + 2;
        sb.append("\\E\\\\E\\Q");
    }
    sb.append(s.substring(current, s.length()));
    sb.append("\\E");
    return sb.toString();
}

Из приведенного выше примера кода я смог понять, что происходит, поскольку метод находит вхождения \ и преобразует их в \E и \Q. Может кто-нибудь объяснить, почему это так.

Для получения дополнительной информации об этом методе я просмотрел метод Pattern.quote ()из jdk 1.6

-. 121 ---1134549- Java, Unicode, UTF -8 и командная строка Windows У меня есть файл jar, который должен читать файл в кодировке UTF -8, который я написал в текстовом редакторе под Windows, и отображать символы на экране. Под OS X и Linux это работает безупречно. Я...

У меня есть файл jar, который должен читать файл в кодировке UTF -8, который я написал в текстовом редакторе под Windows, и отображать символы на экране. Под OS X и Linux это работает безупречно. Однако у меня возникли некоторые проблемы с тем, чтобы заставить его работать под Windows... Я определил средства чтения и записи следующим образом:

FileInputStream file = new FileInputStream(args[0]);
InputStreamReader reader = new InputStreamReader(file, "UTF8");

PrintStream writer = new PrintStream(System.out, true, "UTF8");

Я также изменил шрифт командной строки на Lucida Consoleи кодировку символов на UTF -8 с chcp 65001в указанном порядке.

Теперь, когда я запускаю java -jar Read.jar file.txt, подсказка выдает это.

áéí
ñóú
[]óú
[]

Однако, если я запускаю type file.txt, приглашение правильно отображает содержимое файла.

áéí
ñóú

Я пытался сохранить свой файл с спецификацией и без нее, но это не имело значения. (UTF -8 даже не нужна спецификация, потому что в ней отсутствует порядок следования байтов, верно? )Я пытался скомпилировать с помощью javac -encoding utf8 *.java, но происходит то же самое.

У меня нет идей сейчас. Кто-нибудь хочет помочь?

13
задан 425nesp 13 August 2012 в 06:44
поделиться