我的输入文件是ANSI UNIX文件格式。我将该文件转换为UTF-8。
在转换为UTF-8之前,输入文件中有一个特殊字符
»
转换为UTF-8后,它就像这样
û
当我按原样处理文件时,如果不转换为utf-8,所有特殊字符都会消失,数据也会丢失。 但是当我在转换为UTF-8后处理我的文件时,所有数据都显示为与在输出文件中转换为UTF-8后获得的特殊字符相同。
ANSI到UTF-8(可能是错的,如果我错了,请纠正我)
FileInputStream = fis = new FileInputStream("inputtextfile.txt");
InputStreamReader isr = new InputStreamReader (fis, "ISO-8859-1");
Reader in = new BufferReader(isr);
FileOutputStream fos = new FileOutputStream("outputfile.txt");
OutPutStreamWriter osw = OutPutStreamWriter("fos", "UTF-8");
Writer out = new BufferedWriter(osw);
int ch;
out.write("\uFEFF";);
while ((ch = in.read()) > -1 ) {
out.write(ch);
}
out.close();
in.close();
此后我将进一步处理我的文件以进行最终输出。 我正在使用Talend ETL工具从生成的utf-8中创建最终输出。 (基于Java的ETL工具)
我想要的是,我想处理我的文件,这样我就可以在输入中获得与输入文件相同的特殊字符。
我正在使用java 1.8进行整个处理。一世' 在这种情况下太过困难了,从来没有用特殊字符来处理它。
任何建议都会有所帮助。