Перейти к содержимому

Как задать кодировку файла java

  • автор:

Как поменять кодировку файла?

В метод main первым параметром приходит имя файла, тело которого в кодировке Windows-1251. В метод main вторым параметром приходит имя файла, в который необходимо записать содержимое первого файла в кодировке UTF-8.

Мое решение:

public static void main(String[] args) throws IOException

В результате во втором файле у меня получаются крокозябры. Что я делаю не так ?

Отслеживать

задан 1 дек 2016 в 7:48

7,768 17 17 золотых знаков 77 77 серебряных знаков 138 138 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Много чего не так. Вот работающий код. Думаю, разберётесь.

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main < private final static int BUFFER_SIZE = 1000; public static void main(String[] args) throws IOException < try (final FileInputStream fileInputStream = new FileInputStream(args[0]); final InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "windows-1251"); final FileOutputStream fileOutputStream = new FileOutputStream(args[1]); final OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8")) < final char[] buffer = new char[BUFFER_SIZE]; int readed; while ((readed = inputStreamReader.read(buffer, 0, BUFFER_SIZE)) >0) outputStreamWriter.write(buffer, 0, readed); > > > 

Java File явно указать кодировку

Загружаю средствами java.io.File текстовый файл UTF-8 с буквами/цифрами. Пока запускаю из IDE непосредственно — все нормально — и читает и пишет. После публикации в jar или exe перестают понимать UTF, но при этом корректно работает с ANSI. При этом приложение, запущенное из IDE не переваривает ANSI. Можно как то явно кодировку указывать при загрузке/сохранении? ЗЫ: Все происходит в приложении javaFX, если это важно.

Отслеживать

22k 3 3 золотых знака 27 27 серебряных знаков 37 37 бронзовых знаков

Установка кодировки в java коде

Но в последствии выяснилось, что .contains() в переменную su также в виде текстовой информации поступают отступы и т.д. Да и в целом все символы там смешиваются в одну кучу и получается как то вот так:

test Âîðîíà Ìÿñî 

Только еще с символами абзацных отступов меж словами(Они отказались копироваться) Я пришел к выводу, что мне нужно установить кодировку utf_8. Собственно вопрос: Как установить кодировку в Java коде?

Java проблемы с кодировкой, поможете?

Есть CSV-файл, в нём нужно прочитать несколько строк с конца и переслать их на сервер. При чтении русские буквы некорректно отображаются. Мои попытки изменить кодировку ни к чему не привели, пробовал 5 или 6 разных способов (что в гугле нашёл) — всё бестолку. Сам CSV файл получен с помощью перевода из формата tps (tps-to-csv.jar, если это даст пользу — гуглите). При переводе, как описано, по стандарту файл CSV кодируется в формате ISO-8859-1, однако при проверке файла кодировка оказывается «windows-1251». При попытке изменить кодировку во время перевода (есть такая функция) на UTF-8 — русские буквы в CSV-файле уже становятся нечитаемыми.
Если изменить кодировку самого CSV-файла, а потом читать через java — всё становится в порядке. К сожалению этот вариант не подходит, потому и задаю вопрос тут.

Вот кусок кода (момент чтения):

public static void main(String[] args) throws Exception < int counter = 0; String[] arr = new String[100]; File file = new File("путь к файлу"); ReversedLinesFileReader object = new ReversedLinesFileReader(file); while(counter<100) < arr[counter] = object.readLine(); System.out.println(arr[counter]); counter++; >>

Класс ReversedLinesFileReader находится в -> apache commons-io
Для тестов CSV-файл можно скачать тут

  • Вопрос задан более трёх лет назад
  • 886 просмотров

1 комментарий

Средний 1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *