[英]Improper encoding in Java Read/Write file
我想在Java中以UTF-8格式写入csv文件
我正在使用BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("temp.csv"),Charset.forName("UTF-8").newEncoder()));
搜索互联网后
我仍然收到非法字符。
我想将“Kürzlich”写入我的文件,然后再从同一文件中读取和写入。 当我这样做时,我会收到“Kürzlich”
我如何获得“Kürzlich”:我正在使用DOM解析xml文件。
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
InputStream openstream = url.openStream();
Document doc = dBuilder.parse(openstream);
doc.getDocumentElement().normalize();
然后提取我的字符串。
我不在乎它在屏幕上如何显示。 我想将文件中编写的内容与另一个文件进行完美地比较。
是否由于DOM结构而发生? 有办法吗?
您似乎正在编写UTF-8,但我看不到您如何阅读UTF-8。 您很可能正在阅读默认编码。
尝试使用InputStreamReader包装OpenStream,并指定所需的编码。
我建议您尝试一下以表明您可以编写和阅读UTF-8
String text = "Kürzlich";
PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("test.txt"), "UTF-8")));
pw.println(text);
pw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "UTF-8"));
String line = br.readLine();
br.close();
System.out.println("Text is the same is " + (line.equals(text)));
版画
Text is the same is true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.