В настоящее время у меня есть исключение, которое сообщает мне, что в полной строке содержится недопустимый символ ISO 8859-1, но я хотел бы точно определить, какой это символ.
Я мог бы проверить каждый символв строке, но это было бы весьма неэффективно.
Цель этого - сообщить пользователю инструмента, что он написал недопустимый символ, такой как €
Ввод:
Hello fri€nd
Вывод:
Error in € (index 9)
Существует ли какой-либо быстрый и эффективный способ добиться этого?
Фрагмент фактического метода:
public void writeLine(String line) throws EncodingException {
try {
if (!Charset.forName("ISO-8859-1" ).newEncoder().canEncode(line)) throw new EncodingException();
bufferedWriter.write(line);
bufferedWriter.newLine();
} catch (IOException e) {
e.printStackTrace();
}
}