Я полагаю, вы читаете такие символы:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
String token = reader.readLine();
System.out.println(token);
} catch (IOException e) {
e.printStackTrace();
}
В этом случае кодировка символов точно такая же, как у текущей системной кодовой страницы (по крайней мере, в Windows). Проблема в том, что Eclipse позволит вам вставлять арабские буквы в окно консоли, но при этом потеряет информацию. Я не уверен, поможет ли установка системной кодовой страницы (в региональных настройках ОС) для windows-1256, но это может помочь. Я попытался передать Charset.forName("windows-1256")
в качестве второго параметра InputStreamReader, а затем ввести что-то с помощью арабской клавиатуры, но это не работает.
Хорошо, но мы не такие беспомощные. Так как это предназначено для тестирования (верно?), Вы можете использовать один из двух подходов для решения проблемы:
- Использовать базовый интерфейс Swing (JFrame + JTextField + JLabel и, возможно, некоторую кнопку)
- Предоставить механизм удаления и ввести символы в виде кодовых точек (т. Е. \ U0629)
Лучшим решением будет исправить Eclipse (который не работает) и, например, реализовать Console (System.console ()), но я не уверен, что они примут такой патч.