Я работаю с Java 8 и I18N.Насколько я понимаю, файлы .properties (и последующий код I18N) предполагают, что файлы имеют формат файла "ISO-8859-1".Таким образом, у меня возникают проблемы с символами, которые не могут быть представлены в этом формате файла.
Переход от средства записи файла к OutputStreamWriter не поможет, так как другой конец кода не сможет прочитать этисимволы в любом случае.
Я придумала решение, которое работает, но оно крайне не элегантное.
StringBuilder utfRepresentation = new StringBuilder();
for (int index = 0; index < input.length(); index++) {
if (!Charset.forName("ISO-8859-1").newEncoder().canEncode(input.charAt(index))) {
utfRepresentation.append("\\u");
utfRepresentation.append(Integer.toHexString(input.codePointAt(index)));
} else {
utfRepresentation.append(input.charAt(index));
}
}
Теперь мне нужно заняться другими вещами, такими как извлечение кодировщика вместо созданиякаждый раз новый, но мой вопрос совсем другой:
1) Есть ли более чистый способ преобразования ‰
в \u2030
2) Что даже это U + 2030?UTF-8/16?
3) Есть ли лучший способ создания этой кодировки / кодировщика?Что-то, что не является статичным?я могу извлечь это из файла?или программа чтения / записи файлов?