我正在使用inputStream
阅读流。代码在
buffer = new byte[8];
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(buffer);
System.out.println(new String(buffer, 0, numBytes));
}
} catch (Exception ex) {
ex.printStackTrace();
}
但是我没有得到角色,而是在下面
这些是什么以及如何获得实际角色。
答案 0 :(得分:4)
您需要为String
构造函数提供适当的字符集参数。 (这是第四个参数 - 代码中缺少 - 并且数据的默认值是错误的。)
否则String
会误解您的数据。
你可能会发现
java.nio.charset.Charset.forName("UTF-8")
是你需要的。
答案 1 :(得分:3)
你正在阅读字节并天真地翻译成字符串。这在一个简单的场景中起作用,但是字节组成了不同组合的字符。这称为字符编码,我怀疑你遇到了问题。此
至少,您需要确定要读取的文件的原始编码,并将此编码作为构造函数参数提供给String
。这将告诉String如何将字节数组转换为字符数组(因此是字符串)
有关编码的详细信息,请参阅this document。