java - 获取小盒子而不是实际字符

标签 java

我正在使用 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();
}

但是我得到的不是像下面这样的字符

enter image description here

这些是什么以及如何获得实际字符。

最佳答案

您需要为 String 构造函数提供适当的字符集参数。 (这是第 4 个参数 - 在您的代码中缺失 - 并且您的数据默认值错误。)

否则 String 会误解您的数据。

你可能会发现

java.nio.charset.Charset.forName("UTF-8")

是你需要的。

关于java - 获取小盒子而不是实际字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31340716/

相关文章:

java - 如何在 ViewPager 中均匀分布选项卡?

java - 迭代线程之间共享的数组

java - 无论我做什么,我的程序都会返回 StringIndexOutOfBounds 异常

java - 十六进制数与二进制数相加

java - Object.hashCode() 方法中发生了什么?

Java Swing-在 GridBagLayout 中的单行底部边框下方添加标签

java - 对人物相似度算法的建议

java - 如何使用 switchIfEmpty RxJava

java - 使用 spring mvc 使用 enableStompBrokerRelay 时缺少依赖项

java - 内存分析 - VisualVM 和 Virgo