java - UTF-8 不适用于 Java zipOutputStream

标签 java kotlin zipoutputstream

我正在使用 ZipOutputStream 生成一个包含 csv 的 zip 文件。我已经通过了 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()

最佳答案

来自文档:

charset - the charset to be used to encode the entry names and comment

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

问题一定发生在CsvWriter中。

关于java - UTF-8 不适用于 Java zipOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54402059/

相关文章:

java - ZipOutputStream 类的 closeEntry()

java - 如何修复 'Potential Path Traversal (File Read)' 的 Findbugs 安全警告

java - 为什么我的冒泡排序不起作用? - java

collections - 从列表中的每个对象中选择属性

kotlin - 无法在 Quarkus kotlin 应用程序中注入(inject) REST 客户端接口(interface)

将 ZipEntry 添加到没有 ZipInputStream 的 ZipOutputStream 时出现 java.util.zip.ZipException

java - FlowJob 的 Spring Batch 内存泄漏,重复步骤

java - ChromeDriver 找不到要单击的元素

Kotlin Coroutines 如何获取当前线程的 CoroutineScope?

java - 如何在 appengine java 应用程序中创建包含谷歌云存储对象的 zip 存档?