Я работаю над большим веб-приложением Java в Eclipse, чьи файлы имеют разные кодировки: некоторые из них находятся в UTF-8, другие в Cp1252, а другие - в ISO-8859-1 (без различия между исходными файлами JSP или java, или CSS), но я знаю кодировку каждого файла.
Я конвертирую проект в Maven, и это отличный повод превратить их всех в UTF-8.
Конечно, я не хочу потерять ни одного символа (так что полностью автоматические преобразования здесь не применяются).
Как мне это сделать? Есть ли инструмент, который может помочь мне гарантировать, что я не потеряю какой-либо особый характер?
Webapp находится на итальянском языке, поэтому, особенно в JSP, может быть много акцентированных букв (вероятно, не везде HTML-объекты были использованы).
Проект находится в Eclipse, но я могу использовать внешний редактор, если это облегчит преобразование.
Преобразование одного файла может быть выполнено с помощью функции iconv (я использовал LibIconv для Windows).
Он позволяет указать кодировки источника и назначения и предупреждает, когда символы не могут быть преобразованы.
Я попробовал это с несколькими исходными файлами, и все буквы с акцентом были правильно преобразованы в UTF-8 из Cp1252.
Очень легко написать код для конвертирования кодировок - хотя я бы ожидал, что в любом случае есть инструменты. Просто:
FileInputStream
в существующий файл и оберните его в InputStreamReader
с соответствующей кодировкойFileOutputStream
для нового файла и оберните его в OutputStreamWriter
с соответствующей кодировкой Первые два шага проще с Files.newBufferedReader
и Files.newBufferedWriter
.