我工作在Eclipse中,一个大的Java Web应用程序,其文件有不同的编码:有些是UTF-8,在别人的Cp1252,还有一些是在ISO 8859(与JSP的或java源文件没有区别,或CSS) - 但我知道每个文件的编码。
我的项目转换为Maven的,这是一个伟大的时刻把所有的人都为UTF-8。
当然,我也不想失去一个字符(所以完全自动化的转换在这里不适用)。
我应该怎样做呢? 是否有一个工具,可以帮助我保证我不会失去任何特殊字符?
web应用程序是在意大利,因此,特别是在JSP的,可能有很多的重音字母(可能不是到处HTML实体已使用)。
该项目是Eclipse,但我可以使用外部编辑器如果能够使转换变得更加容易。
这是很容易写的代码转换编码 - 虽然我期望有工具做也无妨。 只是:
- 创建一个
FileInputStream
到现有的文件,并将其包装在InputStreamReader
与适当的编码 - 创建一个
FileOutputStream
的新文件,并将其包装在一个OutputStreamWriter
与适当的编码 - 遍历所有的读者,将字符读入缓冲区,并写出该缓冲区的内容(如阅读,正如许多字符),直到你读过整个文件
- 关闭所有资源(自动带一试,与资源块)
前两个步骤与简单Files.newBufferedReader
和Files.newBufferedWriter
了。
转换一个文件可以用做的iconv功能 (我使用libiconv的适用于Windows )。
它可以让你指定源和目的地编码,并警告字符时不能转换。
我有一对夫妇的源文件的尝试过了,所有的重音字母被正确的UTF-8转换的Cp1252。