Как добавить спецификацию UTF-8 в Kotlin? - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно сгенерировать файлы текстовых данных как с UTF-8-байтовой меткой , так и без нее . Как мне это сделать?

Пока что файл был сгенерирован так:

File(fileName).writeText(source, Charsets.UTF_8)

Но это не дает возможности иметь спецификацию по требованию.

Примечание 1:

В этом вопросе Как добавить спецификацию UTF-8 в java используются BufferedWriter и PrintStream.print(), но это подразумевает изменить генерацию кода на более Java -ориентированный способ (это последний вариант).

Примечание 2:

В этом другом вопросе Java: UTF-8 и BOM с 2012 года указывают на ошибку Java, что спецификация не обрабатывается. В комментариях предлагается никогда не использовать спецификацию, но в моем случае это не вариант, поскольку файлы отправляются различным службам, некоторые из которых требуют этого, а другие нет. Кто-нибудь знает более свежие новости об этом? а если относится к Kotlin?

1 Ответ

1 голос
/ 27 марта 2020

Спецификация представляет собой один символ Unicode, U + FEFF. Вы можете легко добавить его самостоятельно, если это необходимо.

File(fileName).writeText("\uFEFF" + source, Charsets.UTF_8)

Сложнее то, что спецификация не удаляется автоматически при повторном считывании файла. Поэтому люди рекомендуют не добавлять спецификацию, когда она не нужно.

...