2013-05-10 43 views
-1

从java中取出一个字符串并将其放入一个文本文件中。当字符串被写入时,它不包含Â,但是当字符串在字符板中打开时,字符会出现。从java写入后从word pad文件中移除

字符串无:

Notice of Appeal: 

  
Hamilton City Board of Education 

字符串:

Notice of Appeal: 
  
  
Hamilton City Board of Education 

下面是写串

out = new BufferedWriter (new FileWriter(filePrefix + "-body" + ".txt")); 
        out.write("From:  " + em.from); 
        out.newLine(); 
        out.write("Sent Date: " + em.sentDate); 
        out.newLine(); 
        out.write("Subject:  " + em.subject); 
        out.newLine(); 
        out.newLine(); 
        out.newLine(); 
        String temp = new String(emi.stringContent.getBytes("UTF-8"), "UTF-8"); 
        out.write(temp); 

我应该怎么做来没有他们出现在字盘?

+0

幕后发生了一些事情,您需要停下来。我不确定我的生活,但我们将如何根据你的帖子猜测它是什么。您可能需要向我们提供更多信息和相关代码,最好是[sscce](http://sscce.org)。 – 2013-05-10 01:19:18

+0

这是一个编码问题。确保你使用的是UTF-8。 – 2013-05-10 01:20:10

+0

我站好了。 – 2013-05-10 01:20:46

回答

0

我假设这是一个行分隔符问题。 使用:

String line = System.getProperty("line.separator"); 

,只是把它添加到您的字符串,无论你想一个新行

+0

不会执行这个技巧...它会以“\\ n”作为一个字符串保存为一个新行,并且在调试器中没有字符时出现,但在保存时出现 – parkjohnston 2013-05-10 01:28:58

+0

您只需要“\ n”即可创建一个换行 – 2013-05-10 01:32:29

+0

额外是为了在java中逃生 – parkjohnston 2013-05-10 01:35:18

1

这看起来像一个UTF-8编码的问题给我。我相信你会得到Â这个字符,因为你正在用UTF-8编写内容,并且内容包含一个高的ASCII值,但写字板希望数据在本地系统运行的代码页中。将内容写入写字板预期的代码页中,或使写字板使用UTF-8。

作为题外话:

String temp = new String(emi.stringContent.getBytes("UTF-8"), "UTF-8"); 
out.write(temp); 

是完全是浪费时间;使用:

out.write(emi.stringContent); 

改为。

+0

我如何让word pad预期? – parkjohnston 2013-05-10 01:43:44

+0

感谢您的放弃......一开始就是这样,但我一直在想尽一切办法让它工作! – parkjohnston 2013-05-10 01:45:17

+0

我不知道;我会谷歌“写字板UTF8”,并从那里去。 – 2013-05-10 01:45:24