与trema的信件被显示作为百分号

时间:2012-08-28 07:00:37

标签: java string byte

在我的程序中,我将输入的字节流转换为String。但是当字节流包含带有ë的单词时,此字母将转换为%。我该如何解决?

THX

1 个答案:

答案 0 :(得分:0)

对于编码这些字符,

将String对象转换为UTF-8,调用getBytes方法并指定适当的编码标识符作为参数。 getBytes方法返回UTF-8格式的字节数组。要从非Unicode字节数组创建String对象,请使用encoding参数调用String构造函数。请参阅,

try {
    byte[] utf8Bytes = original.getBytes("UTF8");
    byte[] defaultBytes = original.getBytes();

    String roundTrip = new String(utf8Bytes, "UTF8");
    System.out.println("roundTrip = " + roundTrip);
    System.out.println();
    printBytes(utf8Bytes, "utf8Bytes");
    System.out.println();
    printBytes(defaultBytes, "defaultBytes");
} 
catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}