java - 用Java从ZIP压缩包中提取UTF-16编码的文件

标签 java zip utf-16

在代码的最后一部分,我打印了读者给我的内容。但这只是假的,我哪里错了?

public static void read_impl(File file, String targetFile) {
    // Create zipfile input stream
    FileInputStream stream = new FileInputStream(file);
    ZipInputStream zipFile = new ZipInputStream(new BufferedInputStream(stream));

    // Im looking for a specific file/entry
    while (!zipFile.getNextEntry().getName().equals(targetFile)) {
        zipFile.getNextEntry();
    }

    // Next step in api requires a reader
    // The target file is a UTF-16 encoded text file
    InputStreamReader reader = new InputStreamReader(zipFile, Charset.forName("UTF-16"));

    // I cant make sense of what this print
    char buf[] = new char[1];
    while (reader.read(buf, 0, 1) != -1) {
        System.out.print(buf);
    }
}

最佳答案

我猜你出错的地方是相信该文件是 UTF-16 编码的。

如果不解码,能否显示一些初始字节值?

关于java - 用Java从ZIP压缩包中提取UTF-16编码的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131484/

相关文章:

c++ - boost UTF-16 字符串的库?

Java charAt 用于具有两个代码单元的字符

java - 在 Mac 上为我的 Java 7 应用程序创建包安装

python - 为什么 map 像 izip_longest with fill=None 一样工作?

java - 将 Zip 转换为存储压缩

zip - 我怎么知道 7zip 是否使用了 AES256?

java - 使用 UTF-16 将文本绘制到 Canvas

java - 在 Leiningen 项目的 Google Maven 存储库中找不到 Firebase jar

java - Jaxb继承使用替代但不根元素

java - 我想从 if else 语句中获得更多信息