Вопрос по encoding, java, file – Изменить кодировку существующего файла с Java?

7

Мне нужно программно изменить кодировку набора * nix-скриптов на UTF-8 из Java. Я ничего им не напишу, поэтому я пытаюсь найти самый простой и быстрый способ сделать это. Файлы не слишком много и не такие большие. Я мог бы:

"Write" an empty string using an OutputStream with UTF-8 set as encoding Since I'm already using FileUtils (from Apache Commons), I could read|write the contents of these files, passing UTF-8 as encoding

Ничего страшного, но кто-нибудь сталкивался с этим делом раньше? Есть ли минусы в любом подходе?

Theайл @entire должен быть прочитан и переписан за исключением обычных 7-битных чистых ASCII-файлов (и подобных), для которых не требуется исходная спецификация. Спецификация будет сдвигать поток, а также любые изменения кодировки. user166390
@ pst вставьте ответ, чтобы мы могли получить его из списка без ответа daveb
@ user384706 Возможно, более уместно сказать, что многие «текстовые» приложения воспринимают потоки, не относящиеся к спецификации, как UTF-8 ... «кодировка по умолчанию» более уместна в отношении определенного языка / библиотеки / API. user166390
Скрипты идут с ISO-8859-1. @ Спасибо за разъяснение варианта 1, это не вариант Dan
Но я считаю, что кодировкой Unixes по умолчанию является UTF-8. Это кодировка ваших скриптов. Cratylus

Ваш Ответ

1   ответ
12

и так как вы используете общие io, вот пример кода (проверка ошибок на ветер):

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;

public class Main {
    public static void main(String[] args) throws IOException {
        String filename = args[0];
        File file = new File(filename);
        String content = FileUtils.readFileToString(file, "ISO8859_1");
        FileUtils.write(file, content, "UTF-8");
    }
}
ЯвляетсяUTF-8 необходимо? Я думаю, что кодировка Java по умолчанию -UTF-8 так или инач Cratylus
Есть несколько вещей, чтобы сказать здесь. Во-первых, значение по умолчанию маловероятно tio be utf8, а во-вторых, поскольку этот код полностью посвящен кодировкам, лучше всего его явно указывать. / Stackoverflow.com вопросы / 1006276 / ... daveb
ПРЕДУПРЕЖДЕНИЕ: по какой-то причине это обрезает файлы длиннее нескольких КБ, по существу удаляя содержимое файла после определенной точки Orlin Georgiev

Похожие вопросы