У меня есть проект интерпредоставленного права гражданства java и versionado, но кажется, что, открыв это символы с акцентом resource bundle, (файл .properties) испанского языка виден неправильным способом.
Уже я попробовал менять ему кодирование, но оно, кажется, не является лучшим решением.
От какой формы я могу добиваться консистентной интернационализации с моими сотрудниками, у которых есть другое кодирование, отличное от моей?
Причина твоей проблемы состоит в том, что файлы .properties должны быть кодировавшими в Международной организации по стандартизации 8859-1:
Методы похвалите (Reader) / store (Writer, String) загружают и хранят свойства с и к разгрузке, основанной на символах на формате простом и ориентируемом на линии, определенном позже. Пара методов похвалите (InputStream) / store (OutputStream, String) они работают таким же образом как пара похвалите (Reader) / store (Writer, String), если только разгрузка ввода / вывода кодировалась посредством кодирования символов Международная организация по стандартизации 8859-1. Символы, которые не могут быть представленными прямо в этом кодировании, могут быть написанными, что используя Unicode ты убежал, как определен в секции 3.3 Спецификации Языка Java ™; только единственный характер 'или' будь позволен в последовательности утечки. Инструмент native2ascii может быть использованным, чтобы конвертировать файлы свойств с и к другим кодированиям символов.
Большинство frameworks читает их так. Я не знаю, если есть какой-либо, который читал бы их в XML, которые да могут быть UTF-8.
Решение может состоять в том, чтобы обращать их в Международную организацию по стандартизации 8859-1.
Я забыл прокомментировать тебе. Чтобы добавлять символы, которые не могли бы кодировать в Международной организации по стандартизации 8859-1 (или же, большинство символов, определенных в Unicode) ты можешь использовать синтаксис \uNNNN
. Больше информации здесь.
На данный момент это resolvГ - с одной conversiГіn в каждую полученную цепь, я уверен, что это не лучшая soluciГіn (особенно из-за двойной порции definiciГіn и экстенсивное использование PermGen
, чтобы компенсировать дополнительное время).
private static String cadenaEnUTF8(final String nombre) {
String internacionalizado = nombre;
try {
internacionalizado = new String(
ResourceBundle.getBundle(BUNDLE_PATH)
.getString(nombre).getBytes(),
"UTF-8"
);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
return internacionalizado;
}
У меня была та же проблема открывая файлы, которые содержат ударные символы, что осуществляется, состоит в том, чтобы использовать ее codificaciГіn UTF-8
, открыв это:
bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
String defaultCharacterEncoding = System.getProperty("file.encoding")'
– Taber
17.12.2015, 19:08