Как я могу ввести несколько строк Unicode (в том числе порядок чтения вправо-в-сторону) в исходном файле Java? - PullRequest
0 голосов
/ 06 февраля 2012

Я тестирую кусок кода Java и мне нужно создать массив строк. Эти строки представляют собой слова на разных языках, в том числе на арабском с порядком чтения справа налево (не знаю, имеет ли это значение ...)

Так что мне нужно сделать что-то вроде этого:

ArrayList<String> words = ...
words.add(<word-in-english>);
words.add(<word-in-chinese>);
words.add(<word-in-russian>);
words.add(<word-in-arabic>);

Какой лучший способ поместить их в мой код Java? Есть ли способ сделать это, кроме как использовать "\ u" escape для каждого символа в строке? Спасибо

Ответы [ 4 ]

2 голосов
/ 06 февраля 2012

Вы можете установить кодировку редактора / IDE в UTF-8, а также в компилятор java.Для международных проектов это становится все более и более конвенциональным.

К сожалению, вам необходимо установить для шрифта IDE полный шрифт Unicode, который может быть 35 МБ или около того.Или используйте для пропуска пропавшего китайского "\ uXXXX", используя native2ascii.

В зависимости от ваших источников, вы можете использовать файлы для каждого языка.

1 голос
/ 06 февраля 2012

Чтобы это сработало, вы должны сделать следующие 2 вещи:

  • Сохранить исходный файл в формате Unicode (UTF-8). Как это сделать, зависит от IDE / Text Editor.

  • Скомпилируйте файл, указав кодировку UTF-8. Как это:

javac -encoding utf-8 MyFile.java

1 голос
/ 06 февраля 2012

Насколько я знаю, нет проблем с добавлением любых символов Unicode в ваш код Java, включая языки RTL.Это немного зависит от вашей IDE, но я считаю, что все современные IDE поддерживают RTL-типирование.По крайней мере, Eclipse.

Вы должны сохранить свой исходный код, используя UTF-8 кодировку.Опять же, это зависит от вашей IDE.Я затмеваю правой кнопкой мыши по файлу, затем выбираю ресурс и меняю его кодировку на UTF-8.

Иногда просто не удобно набирать тексты RTL в IDE.В этом случае введите текст с помощью другой программы (MS Word, Notepad и т. Д.), А затем скопируйте и вставьте его в код Java.

Кстати, подумайте о хранении Unicode-строк в отдельном файле resouce.Обычно это удобнее.

0 голосов
/ 06 февраля 2012

не должно быть что-то вроде этой работы:

BufferedReader bufReader =
    new BufferedReader(
        new InputStreamReader(new FileInputStream(file_name), "UTF-16"));  

Обратите внимание на UTF-16 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...