[英]Convert Windows-1252 file into UTF-8 file
你好,我在这个简单的转换任务中遇到了一些问题。 这是我的代码(粗略但不那么复杂):
FileInputStream fis = new FileInputStream ("file");
BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"CP1250"));
try {
StringBuilder sb = new StringBuilder();
String line = null;
try {
line = reader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while (line != null) {
sb.append(line);
if(line.contains(" "))
sb.append(System.lineSeparator());
try {
line = reader.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String everything = sb.toString();
System.out.println(everything);
PrintWriter writer = null;
try {
writer = new PrintWriter("clean", "UTF-8");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
writer.println(everything);
writer.close();
}
finally {
try {
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但我获得与输入相同的输出具有相同的编码格式。 你觉得无论如何能帮忙吗?
文档说1)public void println(String x)打印一个String然后终止该行。 此方法的行为就像调用print(String)然后调用println()一样。
2)public void print(String s)打印一个字符串。 如果参数为null,则打印字符串“null”。 否则,根据平台的默认字符编码将字符串的字符转换为字节,并且这些字节的写入方式与write(int)方法完全相同。
您可能会完成转换
PrintWriter writer
= new PrintWriter(new OutputStreamWriter(new FileOutputStream("clean", true),
"UTF-8"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.