在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,因此似乎没有无效的字符。有关如何在日志中正确显示的任何建议吗?