Я пытаюсь создать отдельную вкладку CSV через kotlin.
Для требования нам нужно иметь UTF-16LE для создаваемой кодировки файлов.
Мой урезанный код выглядит примерно так:
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStreamWriter
fun main(args: Array<String>) {
val fileOutputStream = FileOutputStream(File("bla.csv"))
val writer = OutputStreamWriter(fileOutputStream, Charsets.UTF_16LE)
writer.write("bla\tbla\tbla")
writer.write("\n")
writer.write("lab\tlab\tlab")
writer.flush()
writer.close()
}
Таким образом, после выполнения этой программы сгенерированный файл имеет следующую информацию:
(Я запускаю файл на самом файле)
file -I bla.csv
bla.csv: application/octet-stream; charset=binary
Это то, что я получаю, когда иду на
Charsets.UTF_16LE
Я пытался использовать другой вариант UTF-16, что еще больше запутало меня!
Так что, если я использую Charsets.UTF_16, это приведет к:
file -I bla.csv
bla.csv: text/plain; charset=utf-16be
И если я использую Charsets.UTF_16BE, это приведет к:
file -I bla.csv
bla.csv: application/octet-stream; charset=binary
Так что после долгих сомнений в себе и уверенности в том, что я что-то делаю неправильно, я сдался и пришел сюда.
Любое руководство будет оценено. Заранее спасибо