Jsp 是否有一种自动更改项目源文件编码的方法?

Jsp 是否有一种自动更改项目源文件编码的方法?,jsp,encoding,Jsp,Encoding,我需要在一个完整的java项目中切换源文件的编码。目前它配置为cp-1252,我需要它是utf-8。然而,有很多.java、.css、.js、.jsp、.jspf、.properties、。有没有一种自动化的方法可以做到这一点?我试图用现有的一个项目做一个项目,但没有成功(无论如何,我不是很有希望) 我需要一些和我手工做的一样的东西: 在文本编辑器中打开该文件 “另存为”--更改编码属性 重复 在java中,您可以通过以下方式将cp-1252编码的文件内容放入字符串中: FileInputSt

我需要在一个完整的java项目中切换源文件的编码。目前它配置为cp-1252,我需要它是utf-8。然而,有很多
.java、.css、.js、.jsp、.jspf、.properties、。有没有一种自动化的方法可以做到这一点?我试图用现有的一个项目做一个项目,但没有成功(无论如何,我不是很有希望)

我需要一些和我手工做的一样的东西:

  • 在文本编辑器中打开该文件
  • “另存为”--更改编码属性
  • 重复

在java中,您可以通过以下方式将cp-1252编码的文件内容放入字符串中:

FileInputStream inputStream = new FileInputStream(file);
String text = new Scanner(inputStream, "cp-1252").useDelimiter("\\A").next();
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,  "utf-8");
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.append(text);
bufferedWriter.close();
然后,您可以将字符串
text
写入使用utf-8编码的文件,如下所示:

FileInputStream inputStream = new FileInputStream(file);
String text = new Scanner(inputStream, "cp-1252").useDelimiter("\\A").next();
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,  "utf-8");
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.append(text);
bufferedWriter.close();

要使该过程自动化,您可以根据上面的代码创建一个方法,并为使用java方法找到的每个文件调用该方法(不过,我之前会进行备份)。

在java中,您可以通过以下方式将cp-1252编码的文件的内容放入字符串中:

FileInputStream inputStream = new FileInputStream(file);
String text = new Scanner(inputStream, "cp-1252").useDelimiter("\\A").next();
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,  "utf-8");
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.append(text);
bufferedWriter.close();
然后,您可以将字符串
text
写入使用utf-8编码的文件,如下所示:

FileInputStream inputStream = new FileInputStream(file);
String text = new Scanner(inputStream, "cp-1252").useDelimiter("\\A").next();
inputStream.close();
FileOutputStream outputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,  "utf-8");
BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
bufferedWriter.append(text);
bufferedWriter.close();
为了自动化这个过程,您可以从上面的代码中创建一个方法,并为使用java方法找到的每个文件调用它(不过我之前会做一个备份)。

我会使用这个工具,结合一个简短的shell脚本,或者一个
find
调用。Linuxes和Windows的版本已经存在(例如,请参见上的链接)。可能也适用于其他操作系统

编辑:另请参见。

我将使用该工具,并结合一个简短的shell脚本或一个
find
调用。Linuxes和Windows的版本已经存在(例如,请参见上的链接)。可能也适用于其他操作系统


编辑:另请参见。

很酷,我希望不要重新发明轮子(特别是一个已经测试过的轮子),也就是一个制造工具。如果没有这样的事情,我会接受答案的。谢谢酷,我希望不要再发明轮子(特别是一个已经测试过的轮子),也就是一个制造工具。如果没有这样的事情,我会接受答案的。谢谢我在windows上需要它。我明天试试这个。需要看看如何制作这个脚本,我现在不是一个命令利尼亚人:)。你知道文件是否不会以任何方式被破坏,比如弄乱代码缩进吗?@Roger如果原始文件没有在Windows-1252中编码,那么文件的结果将是垃圾,否则不会。我需要它用于Windows。我明天试试这个。需要看看如何制作这个脚本,我现在不是一个命令利尼亚人:)。你知道文件是否不会以任何方式被破坏,比如破坏代码缩进吗?@Roger如果原始文件没有在Windows-1252中编码,那么文件的结果将是垃圾,否则不会。