2013-04-15 3 views
0

Мне нужно переключить кодировку исходных файлов в полном java-проекте. В настоящее время он настроен как cp-1252, и мне нужно, чтобы он был utf-8. Тем не менее, есть БОЛЬШИЕ .java, .css, .js, .jsp, .jspf, .properties, .you-name-it и делать это вручную, чтобы сказать блокнот или что-то еще ОЧЕНЬ утомительное. Есть ли автоматизированный способ сделать это? Я попытался сделать проект из существующего, но он не сработал (не так, чтобы я был очень надежен).Есть ли автоматический способ изменения кодировки исходных файлов проекта?

мне нужно что-то, что делает то же самое я бы вручную:

  • Открыть файл в текстовом редакторе
  • «Сохранить как» - изменить свойство кодировки
  • Repeat

ответ

1

в Java, вы можете поместить в строку содержимое файла в кодировке CP-1252 таким образом:

FileInputStream inputStream = new FileInputStream(file); 
String text = new Scanner(inputStream, "cp-1252").useDelimiter("\\A").next(); 
inputStream.close(); 

Тогда вы можете написать строку text в файл закодирован с использованием UTF-8 таким образом:

FileOutputStream outputStream = new FileOutputStream(file); 
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "utf-8"); 
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); 
bufferedWriter.append(text); 
bufferedWriter.close(); 

Чтобы автоматизировать этот процесс, вы можете создать метод, из приведенной выше коды и вызвать его для каждого найденного файла с помощью java File.listFiles() метод (я бы сделал резервную копию раньше, хотя).

+0

Прохладный, я надеялся не изобретать колесо (специально уже проверенное колесо), т. Е. Встроенный инструмент. Я приму ответ, если этого не произойдет. Благодаря! – Roger

2

Я использовал бы инструмент iconv в сочетании с коротким сценарием оболочки или, возможно, вызовом find. Существуют сборки для Linux и Windows (см., Например, ссылки на this page). Вероятно, для других ОС.

Редактировать: Смотри также this related question.

+0

Мне это нужно для окон. Я попробую это завтра. Нужно посмотреть, как сделать этот скрипт, я сейчас не команда línea guy :). Знаете ли вы, что файлы не будут повреждены каким-либо образом, например, возиться с отступом кода? – Roger

+0

@Roger Результатом файла будет мусор, если исходный файл не закодирован в Windows-1252, в противном случае нет. – Esailija

Смежные вопросы