0

如果两台不同的机器有不同的字符编码。如何从java程序中获取两台机器上的相同文件应该以相似的方式读取。是否可以使用java或者我们必须手动设置两台机器的编码?

4

3 回答 3

2

听起来你只想使用类似的东西:

InputStream inputStream = new FileInputStream(...);
Reader reader = new InputStreamReader(reader, "UTF-8"); // Or whatever encoding

基本上你不必使用平台默认编码,你几乎不应该这样做。FileReader 总是使用平台默认编码很痛苦:(我更喜欢明确指定编码,即使我明确指定我想使用平台默认编码:)

于 2012-08-22T18:28:01.657 回答
0

您无需更改机器的设置。

您可以使用任何允许您设置字符编码的 java.io.Reader 子类。比如 InputStreamReader,像这样:

new InputStreamReader(new FileInputStream("file.txt"), "UTF8");
于 2012-08-22T18:30:07.603 回答
0

您可以控制在两个环境中读取/写入文件。

在 Java 中处理文本文件

您只能在读取端进行控制。

  1. 您知道用于写入文件的编码:确定用于写入文件的编码并使用相同的编码来读取它。
  2. 您不知道用于写入文件的编码:您能做的最好的就是猜测编码:字符编码检测算法

更新

如果您的问题是您没有在 Eclipse 控制台中正确看到输出,那么问题可能出在 Eclipse 本身的编码设置上。阅读这篇关于如何修复 Eclipse 的文章。

于 2012-08-22T18:33:13.203 回答