поэтому я пытался реализовать 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 фактически решило все мои проблемы с кодировкой. Я буду помнить об этом в следующий раз, когда столкнусь с такой проблемой.
Привет