Как конвертировать японский текст в Unicode в JAVA? [Дубликат]

Вы можете проверить, открыт ли Excel. Нет необходимости создавать еще один isntance

   If CheckAppOpen("excel.application")  Then
           'MsgBox "App Loaded"
            Set xlApp = GetObject(, "excel.Application")   
   Else
            ' MsgBox "App Not Loaded"
            Set  wrdApp = CreateObject(,"excel.Application")   
   End If
40
задан ehsun7b 6 June 2011 в 13:13
поделиться

10 ответов

Если вам нужно написать файл .properties, вы можете просто добавить строки в объект «Свойства», а затем сохранить его в файл. Он позаботится о преобразовании.

7
ответ дан x4u 19 August 2018 в 10:03
поделиться
  • 1
    Ну, вы должны убедиться, что вы сохраните файл в формате UTF-8 (возможно, UTF-16 или UCS-2/4 будут работать), или у вас будут проблемы. – ArtB 3 June 2011 в 18:18
  • 2
    @ArtB: Нет, свойства интерпретируют входные файлы всегда как ISO-8859-1 (первая страница Юникода), а также сохраняются в этой кодировке. Вот почему он нуждается в экранах \uXXXX и создает их при сохранении. Хотя, так как Java version 1.6 Properties позволяет считывать данные с объекта Reader, чтобы вы могли создать собственный собственный формат файлов свойств на основе UTF-8. – x4u 3 June 2011 в 18:26
  • 3
    О ... это не вызывает проблем с не-первыми языками? – ArtB 3 June 2011 в 18:50
  • 4
    Да, это приводит к сравнительно большим файлам для языков, которые используют в основном символы за пределами 8859-1, потому что кодировка \uXXXX меньше пространства, чем UTF-8 или UTF-16. Это также делает невозможным редактирование этих файлов в любом редакторе, который не знает об этой специальной кодировке. Но, по крайней мере, это позволяет сохранять и загружать весь текст в формате Unicode в расширение, которое поддерживается виртуальной машиной Java в целом. – x4u 3 June 2011 в 19:00
  • 5

есть инструменты JDK , выполняемые через командную строку следующим образом:

native2ascii -encoding utf8 src.txt output.txt

Пример:

src.txt

بسم الله الرحمن الرحيم

output.txt

\u0628\u0633\u0645 \u0627\u0644\u0644\u0647 \u0627\u0644\u0631\u062d\u0645\u0646 \u0627\u0644\u0631\u062d\u064a\u0645

Если вы хотите использовать его в своем приложении Java, вы можете обернуть эту командную строку:

String pathSrc = "./tmp/src.txt";
String pathOut = "./tmp/output.txt";
String cmdLine = "native2ascii -encoding utf8 " + new File(pathSrc).getAbsolutePath() + " " + new File(pathOut).getAbsolutePath();
Runtime.getRuntime().exec(cmdLine);
System.out.println("THE END");

Затем прочитайте содержимое новый файл.

45
ответ дан Abdennour TOUMI 19 August 2018 в 10:03
поделиться
11
ответ дан ArtB 19 August 2018 в 10:03
поделиться

У меня также была эта проблема. У меня был какой-то португальский текст с некоторыми специальными символами, но эти символы были уже в формате Unicode (например: \u00e3).

Поэтому я хочу преобразовать S\u00e3o в São.

Я сделал это с помощью apache commons StringEscapeUtils . Как сказал @ sorin-sbarnea. Можно загрузить здесь .

Использовать метод unescapeJava, например:

String text = "S\u00e3o"
text = StringEscapeUtils.unescapeJava(text);
System.out.println("text " + text);

(Существует также метод escapeJava, но это помещает символы unicode в строку.)

Если кто-то знает решение на чистой Java, сообщите нам.

14
ответ дан Brad Mace 19 August 2018 в 10:03
поделиться
13
ответ дан Community 19 August 2018 в 10:03
поделиться

Просто некоторые основные методы для этого (вдохновленные инструментом native2ascii):

/**
 * Encode a String like äöü to \u00e4\u00f6\u00fc
 * 
 * @param text
 * @return
 */
public String native2ascii(String text) {
    if (text == null)
        return text;
    StringBuilder sb = new StringBuilder();
    for (char ch : text.toCharArray()) {
        sb.append(native2ascii(ch));
    }
    return sb.toString();
}

/**
 * Encode a Character like ä to \u00e4
 * 
 * @param ch
 * @return
 */
public String native2ascii(char ch) {
    if (ch > '\u007f') {
        StringBuilder sb = new StringBuilder();
        // write \udddd
        sb.append("\\u");
        StringBuffer hex = new StringBuffer(Integer.toHexString(ch));
        hex.reverse();
        int length = 4 - hex.length();
        for (int j = 0; j < length; j++) {
            hex.append('0');
        }
        for (int j = 0; j < 4; j++) {
            sb.append(hex.charAt(3 - j));
        }
        return sb.toString();
    } else {
        return Character.toString(ch);
    }
}
0
ответ дан larsilus 19 August 2018 в 10:03
поделиться

Сообщество Apache StringEscapeUtils.escapeEcmaScript(String) возвращает строку с символами unicode, экранированными с использованием нотации \u.

"Art of Beer                   
3
ответ дан Paradox 19 August 2018 в 10:03
поделиться

Есть инструмент командной строки, который поставляется с java, называемым native2ascii . Это преобразует файлы Unicode в файлы с экранированным ASCII. Я обнаружил, что это необходимый шаг для генерации файлов .properties для локализации.

7
ответ дан Sam Barnum 19 August 2018 в 10:03
поделиться

Вы можете использовать escapeJavaStyleString из org.apache.commons.lang.StringEscapeUtils.

21
ответ дан sorin 19 August 2018 в 10:03
поделиться

Возможно, вы могли бы взломать, если из этого кода JavaScript:

/* convert                   
0
ответ дан user 19 August 2018 в 10:03
поделиться
Другие вопросы по тегам:

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