Вопрос:

Почему кодировка текстового файла все еще ANSI, когда в коде Java я указываю, что это будет UTF-8

java

18 просмотра

1 ответ

35 Репутация автора

Я пишу некоторый текст в файл, используя объект FileWriter. Я указываю, что я хочу, чтобы выходные данные были в UTF-8, но когда я открываю текстовый файл и сохраняю как, я вижу, что он находится в кодировке ANSI.

Я также хочу добавить, что когда есть символы, отличные от стандартного набора символов ascii (например, - символ японского языка), кодировка файла - UTF-8, но без этого кодировка текстового файла - ANSI.

File json_file= new File(path);
FileWriter json_file_output=newFileWriter(json_file,StandardCharsets.UTF_8);
json_file_output.write("SOME JSON TEXT HERE");
json_file_output.flush();

Я не уверен, является ли это из-за кода Java или блокнота.

Спасибо вам за помощь.

Автор: AADITHYA KRISHNAN Источник Размещён: 11.08.2019 06:45

Ответы (1)


0 плюса

129789 Репутация автора

Там нет такого понятия, как ANSIкодирование. Смотрите этот другой вопрос .

Вероятно, имеется в виду US-ASCII. И каждый 8-битный файл US-ASCII также является файлом UTF-8. Unicode - это расширенная версия US-ASCII. При записи с использованием октетов файлы ASCII являются файлами UTF-8. Кодировка UTF-8 была разработана специально для обеспечения совместимости.

Ваш текстовый редактор, вероятно, просматривает область символов, найденных в вашем файле, и затем маркирует файл, используя минимально возможную кодировку. Если только символы US-ASCII, то пометьте их как US-ASCII (и, по-видимому, неверно обозначите как «ANSI»). Как только вы добавите символы с более высоким номером с кодовой точкой, выходящей за пределы ASCII, пометьте их как UTF-8.

Автор: Basil Bourque Размещён: 11.08.2019 07:22
Вопросы из категории :
32x32