现在有个任务就需要用java实现将文件转码成UTF8编码。。。文件的类型不确实。。。
要转的类型好像有 "EBCDIC cp937" "GBK" "BIG5" 等。。。
想请教一下 大概该怎么实现比较好。。。主要是想知道 怎么准确判断文件是什么编码格式的。。。
这个问题到底该怎么正确转成UT
input
String str=new String(input.getBytes,"UTF-8");
先读取文件,然后
Writer w = new OutputStreamWriter(new FileOutputStream(destFileName), "utf-8");
一个系统应该是定下来的,编码格式。从前台到后台保持统一即可。
转换的方法就像1L和2L讲的,是这样的,但是如果项目的编码格式不是UTF-8,或者文件内容本身就不是UTF-8写进去的,强转为UTF-8的结果,还是乱码的。
LZ可以试试在windows下读取一个txt文档(包含中文字符,如果是中文操作系统,默认会是GBK格式的),然后将读取的字符串转成UTF-8,然后控制台打印下看看,会是乱码的。
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("F:\\test\\io\\1.txt")),"gbk"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("F:\\test\\io\\2.txt")),"utf-8"));
int ch = 0;
while((ch=br.read()) != -1){
bw.write(ch);
}
bw.flush();
br.close();
bw.close();
}