Хранить символы unicode в Bundle

У меня есть проект интерпредоставленного права гражданства и versionado, но кажется, что, открыв это символы с акцентом resource bundle, (файл .properties) испанского языка виден неправильным способом.

Уже я попробовал менять ему кодирование, но оно, кажется, не является лучшим решением.

Pantallazo

От какой формы я могу добиваться консистентной интернационализации с моими сотрудниками, у которых есть другое кодирование, отличное от моей?

2
задан 17.12.2015, 17:18
3 ответа

Причина твоей проблемы состоит в том, что файлы .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. Больше информации здесь.

2
ответ дан 24.11.2019, 15:05
  • 1
    Привет и #191; podr и # 237; схвати переводить, хотя будет иметь сжатую форму текст в ingl и # 233; s? Привет – Gepser 18.12.2015, 22:58
  • 2
    @Gepser я Это сделал, в верхней части, в первом изложении. Но вперед, это сообщество - усилие colaborativo, где мы можем издавать все. – ArturoTena 18.12.2015, 23:04
  • 3
    Конечно я это не сделал, потому что я это увидел с очереди revisi и # 243; n и я обычно не делаю это с all и # 237;. Поскольку он был я был похож и # 243; хороший ответ и поэтому upvote. Я нравиться и # 237; чтобы переводить полный текст но har и # 233; в часы, если никто это не сделал в и # 250; n. Привет. – Gepser 18.12.2015, 23:07
  • 4
    Точно это я pas и # 243; и all и # 237; они начали проблемы, так как они обнаруживали unicode, и он перемещал это меня в utf8. Я изменюсь codificaci и # 243; n в ту, что ты говоришь мне надеясь, что оно функционирует. Привет!:) – Ruslan López 19.12.2015, 05:03
  • 5
    Использование символов с диагоналями решение и # 243; совсем и я позволил себе и # 243; что, если у кого-то есть другой codificaci и # 243; n процесс был прозрачным. – Ruslan López 21.12.2015, 17:46

На данный момент это 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;
    }
-1
ответ дан 05.09.2019, 03:58

У меня была та же проблема открывая файлы, которые содержат ударные символы, что осуществляется, состоит в том, чтобы использовать ее codificaciГіn UTF-8, открыв это:

bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
1
ответ дан 24.11.2019, 15:05
  • 1
    soluci и # 243; n, что дает мне @Elenasys я функцию и # 243; так как, использовав это по умолчанию, он открывает файл для чтения с codificaci и # 243; n по умолчанию свойства системы " file.encoding". И из-за того, что расширяет немного м и # 225; s, смоги использовать следующий funci и # 243; n, чтобы проверять codificaci и # 243; n: String defaultCharacterEncoding = System.getProperty("file.encoding")' – Taber 17.12.2015, 19:08
  • 2
    К несчастью этот soluci и # 243; n он не загружает деньги и # 225; micamente bundle правильного locale в каждом случае – Ruslan López 18.12.2015, 14:24
  • 3
    Хороший в конце концов это то, что мы комментируем тебе, ты должен добавлять encoding " UTF-8" чтобы мочь извлекать данные правильно. – Jorgesys♦ 18.12.2015, 17:36