从数据库中获取后,如何将Unicode文本存储在文件中?

时间:2013-02-01 05:14:45

标签: java file unicode

在数据库表中有一个名为♥-You-Got-Me-♥[www.savevid.com].mp4的文件。我需要获取此文件的名称并将其保存在文本文件中。但是我保存的方式,我看到?而不是。如何以Unicode格式存储文本?

我的方式是:

String name = Foo.getNameFromTheTable();
PrintWriter writer = new PrintWriter(file);
writer.println(name);
writer.close();

但是这不会以unicode形式存储文本。

1 个答案:

答案 0 :(得分:1)

来自docs

  

打印一个字符串。如果参数为null,则打印字符串“null”。否则,字符串的字符将根据平台的默认字符编码转换为字节,并且这些字节的写入方式与write(int)方法完全相同。

这就是问题的原因。

相反,请使用FileOutputStreamOutputStreamWriter

OutputStreamWriter(OutputStream out, String charsetName) 
Create an OutputStreamWriter that uses the named charset.

请参阅解决方案:https://stackoverflow.com/a/1001568/1360074