Java кодировка UTF-8 немецкий Umlaute - PullRequest
0 голосов
/ 09 января 2020

поэтому я пытался реализовать UTF-8-кодировщик для правильного разбора немецкого Umlaute для моего xml -файла. Я нашел следующий код:

private static String convertToUTF8(String s) {
        String out = null;
        try {
            out = new String(s.getBytes("UTF-8"), "ISO-8859-1");
            System.out.println(out);
        } catch (java.io.UnsupportedEncodingException e) {
            return null;
        }
        return out;
    }

Получение атрибутов LDAP:

            LdapContext ctx = new InitialLdapContext(environment, null);
            ctx.setRequestControls(null);
            NamingEnumeration<?> namingEnum = ctx.search("...", "...",
                    getSimpleSearchControls());
            if(namingEnum.hasMore()) {
                SearchResult result = (SearchResult) namingEnum.next();
                Attributes attrs = result.getAttributes();
                namingEnum.close();
                ctx.close();
                System.out.println(attrs);

Пример использования атрибутов:

String title = attrs.get("title")!=null?attrs.get("title").toString().split(":")[1].substring(1):"";

Строка "title" затем просто добавляется в другую строку и отправляется на сервер. Код работает нормально, когда ему приходится иметь дело с небольшими умлаутами, такими как «ä» или «ö», и сервер также принимает эти символы. Когда дело доходит до заглавных, таких как «Ä» или «Ö», оно внезапно перестает работать, и сервер отвечает мне, что кодировка для UTF-8 неправильная.

У кого-нибудь есть идеи, как эту проблему можно решить?

Редактировать: Итак, я обнаружил, что добавление кодировки в postRequest фактически позволяет мне отправлять на сервер жестко закодированные символы UTF-8, и он принимает его:)

Edit2: На самом деле я понятия не имею, почему и как, но кажется, что простое добавление кодировки в postRequest фактически решило все мои проблемы с кодировкой. Я буду помнить об этом в следующий раз, когда столкнусь с такой проблемой.

Привет

...