0

服务器接收字节数组作为输入流,我用DataInputStream包装了流。前2个字节表示字节数组的长度,后2个字节表示一个标志,接下来的字节由内容组成。我的问题是内容包含有 2 个字节的 unicode 字符。如何读取 unicode char ?我的上一个代码是:

    DataInputStream dis = new DataInputStream(is);
    int length = dis.readUnsignedShort();
    int flag = dis.readUnsignedShort();

    String content = "";
    int c;
    for (int i = 0; i < length - 4; i++) {
        c = dis.read();
        content += (char) c;
    }

它只能读取 ascII.thxs 来帮助您!

4

1 回答 1

0

这取决于您输入的编码方案。如果你不想做繁重的工作,你可以使用 Apache IOUtils 并将字节转换为 unicode 字符串。示例:IOUtils.toString(bytes, "UTF-8")

于 2013-11-04T09:39:08.697 回答