【发布时间】:2020-07-07 11:09:00
【问题描述】:
我需要生成带有 UTF-8 字节顺序标记和不带它的文本数据文件。我该怎么做?
到目前为止,文件已生成如下:
File(fileName).writeText(source, Charsets.UTF_8)
但这并不能提供按需提供 BOM 的可能性。
注 1:
在这个问题中How to add a UTF-8 BOM in java 正在使用BufferedWriter 和PrintStream.print(),但这意味着将代码的生成更改为更面向Java 的方式(这是最后一个选项)。
注2:
在 2012 年的另一个问题 Java: UTF-8 and BOM 中,指向 BOM 无法处理的 Java 错误。在 cmets 中建议不要使用 BOM,但在我的情况下这不是一个选项,因为文件被发送到不同的服务,其中一些需要它,而另一些不需要。有人知道这方面的最新消息吗?如果适用于 Kotlin?
【问题讨论】:
-
你可以尝试在源中添加“\xEF\xBB\xBF”吗?
-
@maio290 我可以试试.. 类似
.writeByte(byteArrayOfInts(0xEF, 0xBB, 0xBF)。但也许有更 Kotlin 的方式来做这件事,对吧?
标签: java kotlin utf-8 byte-order-mark