带有 utf-8 的 Java BufferedWriter 对象 [英] Java BufferedWriter object with utf-8

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

问题描述

我有以下代码,我想让输出流使用 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");

我目前的代码是...

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

是否可以在不使用 OutputStreamWriter 的情况下将该对象定义为 UTF-8?

Is it possible to define this object as UTF-8 without having to use the OutputStreamWriter?

谢谢,

推荐答案

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

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

或者从 Java 8 开始:

Or as of Java 8:

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

(当然,您可以将系统默认编码更改为 UTF-8,但这似乎有点极端.)

(Of course you could change your system default encoding to UTF-8, but that seems a bit of an extreme measure.)

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

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