来自ldap的char在java中无法正确显示

时间:2016-10-31 19:36:51

标签: java ldap

在Eclipse Ldap Browser插件中,我看到一个具有UTF-8字符的属性值(小写字母n,其上方有一个〜)。这是我读过Java用于其字符串的UTF char c3b1或USC2 char 00F1。但是当我使用以下代码将其打印到日志文件中时,它会显示为大写字母A,其上方为〜,后跟+/-符号。所有三个输出语句都显示相同的内容。

    while(allAttributes.hasNext()) {
        LDAPAttribute attribute =  (LDAPAttribute)allAttributes.next();    
        String attributeValue = new String(attribute.getStringValue());
        byte[] attByteValue = attribute.getByteValue();
        String utf8Str = new String( attByteValue, "UTF-8");
        log.debug("attribute.getStringValue="+attribute.getStringValue());
        log.debug("attributeValue="+attributeValue);
        log.debug("utf8Str="+utf8Str);
        boolean isValidUTF8 = Base64.isValidUTF8(attByteValue, true);
        if (isValidUTF8) log.debug("string contains all valid UTF8 chars and UCS2 chars");
        else log.debug("string contains invalid UTF8 char(s) or invalid UCS2 char(s)");
    }

isValidUTF返回true,因此似乎没有无效的字符。有关如何在日志中正确显示的任何建议吗?

0 个答案:

没有答案