关于java:将Eclipse更改为UTF-8编码后文本损坏

Text corrupt after changing the Eclipse to UTF-8 Encoding

我不得不将EclipseIndigo编码改为UTF-8。现在所有的社会角色都是_?_替换为?.

我可以搜索和替换,但我想知道是否有更好的解决方案。

谢谢


在Eclipse中更改编码不会更改现有文件:它只会更改Eclipse读取它们的方式。

您需要的是将旧文件转换为UTF-8并配置Eclipse。

有一些工具可以做到这一点,你也可以编写一个小的Java程序。

如果你想使用现有的工具,这里是我发现的第一个工具:http://www.marble software.com/marble_software/charco.html(你可以为你的(未指定的)操作系统找到更好的工具)。

如果您想自己编写一个工具(大约20个loc),需要知道的是,您必须:

  • 用初始字符集读取文件
  • 以UTF-8格式写入文件

操作的核心是:

1
2
3
4
5
6
  reader = new BufferedReader(new InputStreamReader(new FileInputStream(...),"you have to know it"));
  writer = new OutputStreamWriter(new FileOutputStream(...),"UTF-8");
  String line;
  while ((line=reader.readLine())!=null) {
     writer.write(line);
  }

我推荐使用notepad++进行转换。这是一个编辑器,它有一些非常有用/强大的视图和转换工具来解决字符集的问题。还有一些类似"瑞士刀"的功能(文件比较、高级搜索和替换等等…)

记事本+


只需要alt+enter,然后选择资源utf-8