在数据库表中有一个名为♥-You-Got-Me-♥[www.savevid.com].mp4
的文件。我需要获取此文件的名称并将其保存在文本文件中。但是我保存的方式,我看到?
而不是♥
。如何以Unicode格式存储文本?
我的方式是:
String name = Foo.getNameFromTheTable();
PrintWriter writer = new PrintWriter(file);
writer.println(name);
writer.close();
但是这不会以unicode形式存储文本。
答案 0 :(得分:1)
来自docs:
打印一个字符串。如果参数为null,则打印字符串“null”。否则,字符串的字符将根据平台的默认字符编码转换为字节,并且这些字节的写入方式与write(int)方法完全相同。
这就是问题的原因。
相反,请使用FileOutputStream
和OutputStreamWriter
:
OutputStreamWriter(OutputStream out, String charsetName)
Create an OutputStreamWriter that uses the named charset.