大家好,又见面了,我是你们的朋友全栈君。
I have the following code and I want to make the outputstream use utf-8. Basically I have characters like é that appear as é so it looks like an encoding issue.
I’ve seen lots of examples that use…
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path),”UTF-8″);
My current code though is…
BufferedWriter out = new
BufferedWriter(new FileWriter(DatabaseProps.fileLocation + “Output.xml”));
Is it possible to define this object as UTF-8 without having to use the OutputStreamWriter?
Thanks,
解决方案
No. FileWriter doesn’t let you specify the encoding, which is extremely annoying. It always uses the system default encoding. Just suck it up and use OutputStreamWriter wrapping a FileOutputStream. You can still wrap the OutputStreamWriter in a BufferedWriter of course:
BufferedWriter out = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(path), StandardCharsets.UTF_8));
Or as of Java 8:
BufferedWriter out = Files.newBufferedWriter(Paths.of(path));
(Of course you could change your system default encoding to UTF-8, but that seems a bit of an extreme measure.)
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140839.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...