首页 > 解决方案 > UTF-8 不适用于 Java zipOutputStream

问题描述

我正在使用 .csv 生成一个包含 csv 的 zip 文件ZipOutputStream。我已经通过了编码 UTF-8 但问题是德语变音符号没有正确压缩。未压缩时,它们不会正确显示在文件中。

我不确定问题是压缩本身还是解压缩。

与此问题相关的所有主题主要是关于文件名中的特殊字符,但对我而言,问题出现在数据中。

   val zos = ZipOutputStream (outputStream, StandardCharsets.UTF_8)
        val entry = ZipEntry("file1.csv")
        zos.putNextEntry(entry)

        val writer = CsvWriter(zos)

        for (entr in data)
            writer.appendRow {entr.forEach { write(it) }}
        zos.closeEntry()
    zos.close()

标签: javakotlinzipoutputstream

解决方案


从文档:

charset - 用于对条目名称和注释进行编码的字符集

因此,设置 UTF-8 对已经必须是字节流的内容没有任何影响。

问题必须发生在CsvWriter.


推荐阅读