Java BufferedWriter对象与utf-8 [英] Java BufferedWriter object with utf-8

查看:811
本文介绍了Java BufferedWriter对象与utf-8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码,我想使输出流使用utf-8。基本上,我有一些像é这样的角色,它们显示为é ,所以看起来像一个编码问题。 p>

我看过很多例子,使用...

  OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(path),UTF-8); 

我当前的代码是...

  BufferedWriter out = new 
BufferedWriter(new FileWriter(DatabaseProps.fileLocation +Output.xml));

可以将此对象定义为UTF-8,而不必使用OutputStreamWriter?


谢谢,

解决方案

FileWriter 不允许你指定编码,这是非常烦人的。它始终使用系统默认编码。只需吸取它,并使用 OutputStreamWriter 包装一个 FileOutputStream 。当然,你仍然可以将OutputStreamWriter包装在一个BufferedWriter中:

  BufferedWriter out = new BufferedWriter 
(new OutputStreamWriter FileOutputStream(path),StandardCharsets.UTF_8));

或从Java 8开始:

  BufferedWriter out = Files.newBufferedWriter(Paths.of(path)); 

(当然,您可以将系统默认编码更改为UTF-8,但似乎有点一个极端的措施。)


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.)

这篇关于Java BufferedWriter对象与utf-8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆