所以我试图实现一个UTF-8编码器来为我的xml文件正确解析德语Umlaute。 我发现以下代码:
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”字符串仅添加到另一个字符串中,然后发送到服务器。 当必须处理诸如“ä”或“ö”之类的小Umlaut且服务器也接受这些字符时,该代码可以很好地工作。 对于大写字母,例如“Ä”或“Ö”,它突然停止工作,服务器回答我,UTF-8的编码错误。
有人知道如何解决这个问题吗?
编辑:因此,我发现将编码添加到postRequest中实际上使我可以将硬编码的UTF-8字符发送到服务器,并且它可以接受:)
Edit2:实际上我不知道为什么和如何,但是似乎只是将字符集添加到postRequest实际上解决了我在编码方面遇到的所有问题。下次遇到此类问题时,我会记住这一点。
问候