如何(Java)的文件转换成不同的编码能一样吗?(How to convert (Java) fil

2019-09-30 08:49发布

我工作在Eclipse中,一个大的Java Web应用程序,其文件有不同的编码:有些是UTF-8,在别人的Cp1252,还有一些是在ISO 8859(与JSP的或java源文件没有区别,或CSS) - 但我知道每个文件的编码。

我的项目转换为Maven的,这是一个伟大的时刻把所有的人都为UTF-8。
当然,我也不想失去一个字符(所以完全自动化的转换在这里不适用)。

我应该怎样做呢? 是否有一个工具,可以帮助我保证我不会失去任何特殊字符?
web应用程序是在意大利,因此,特别是在JSP的,可能有很多的重音字母(可能不是到处HTML实体已使用)。

该项目是Eclipse,但我可以使用外部编辑器如果能够使转换变得更加容易。

Answer 1:

这是很容易写的代码转换编码 - 虽然我期望有工具做也无妨。 只是:

  • 创建一个FileInputStream到现有的文件,并将其包装在InputStreamReader与适当的编码
  • 创建一个FileOutputStream的新文件,并将其包装在一个OutputStreamWriter与适当的编码
  • 遍历所有的读者,将字符读入缓冲区,并写出该缓冲区的内容(如阅读,正如许多字符),直到你读过整个文件
  • 关闭所有资源(自动带一试,与资源块)

前两个步骤与简单Files.newBufferedReaderFiles.newBufferedWriter了。



Answer 2:

转换一个文件可以用做的iconv功能 (我使用libiconv的适用于Windows )。

它可以让你指定源和目的地编码,并警告字符时不能转换。

我有一对夫妇的源文件的尝试过了,所有的重音字母被正确的UTF-8转换的Cp1252。



文章来源: How to convert (Java) files with different encodings to the same?