Распечатайте строковый литерал unicode как фактический символ

Обратите внимание, что графики частоты успешных обращений будут синусоидальными шаблонами с 'часами пик', возможно, 2x или 3x уровень, который Вы получаете, в то время как пользователи спят. (Может быть полезным, когда Вы планируете ежедневный материал пакетной обработки данных для случая на серверах)

, Вы видите эффект даже на 'международный' (многоязычный, локализованный) сайты как Википедия

16
задан digiarnie 10 September 2009 в 00:46
поделиться

3 ответа

Я написал небольшую программу:

public static void main(String[] args) {
    System.out.println("\u00a5123");
}

Она выводит:

¥ 123

, т.е. выводит именно то, что вы заявили в своем сообщении. Я не уверен, что что-то еще происходит. Какую версию Java вы используете?

edit:

В ответ на ваше пояснение, есть несколько различных методов. Самый простой - поискать "

16
ответ дан 30 November 2019 в 22:17
поделиться

Вам, вероятно, придется написать синтаксический анализ для них, если вы не можете найти его в сторонней библиотеке. Я знаю, что в JDK нет ничего, что могло бы их проанализировать, потому что совсем недавно у меня возникла идея использовать такого рода escape-последовательности как способ контрабанды Unicode через базу данных только для Latin-1. (Я закончил тем, что сделал что-то еще, кстати)

Я скажу вам, что java.util.Properties экранирует и отменяет экранирование символов Unicode таким образом при чтении и записи файлов (поскольку файлы должны быть в формате ASCII). Методы, которые он использует для этого, являются частными, поэтому вы не можете их вызывать, но вы можете использовать исходный код JDK, чтобы вдохновить ваше решение.

1
ответ дан 30 November 2019 в 22:17
поделиться

Как было упомянуто ранее, эти строки необходимо будет проанализировать, чтобы получить желаемый результат.

  1. Токенизируйте строку, используя \ u в качестве разделителя. Например: \ u63A5 \ u53D7 => {"63A5", "53D7"}

  2. Обработайте эти строки следующим образом:

     String hex = "63A5";
    int intValue = Integer.parseInt (шестнадцатеричный, 16);
    System.out.println ((char) intValue);
    
2
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: