【问题标题】:remove  from word pad document after writing from java从 java 写入后从 word pad 文档中删除 Â
【发布时间】:2013-05-10 01:17:09
【问题描述】:

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

我应该怎么做才能不让它们出现在写字板中?

【问题讨论】:

  • 幕后发生了一些事情,你需要停下来。但是,我不确定我们如何能够根据您的帖子猜测它是什么。您可能需要向我们提供更多信息和相关代码,最好是sscce
  • 这是一个编码问题。确保您使用的是 UTF-8。

标签: java wordpad


【解决方案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);

改为。

【讨论】:

  • 我如何让字垫期待?
  • 感谢旁白……一开始就是这样,但我正在尽一切可能让它发挥作用!
  • 哦,看起来你的 JVM 的默认编码是 UTF-8,所以为什么用 FileWriter 写一个字符串是在做 UTF-8 编码。
  • 我还能用什么其他格式来写它并保持格式?
  • 您可以尝试 ISO 8859-1(又名 Windows-1252)。或者您可以尝试在文件开头编写 BOM,这可能导致 WordPad 将其识别为 Unicode。或者您可以尝试在打开文件时明确指定 UTF-8。
【解决方案2】:

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

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

只需将它添加到您想要换行的字符串中

【讨论】:

  • 这不起作用...它被保存为带有“\\n”的字符串作为新行,并且在调试器中出现时没有字符,但在保存时出现跨度>
  • 你只需要 "\n" 来创建一个换行符
  • 额外用于java中的转义
  • 为什么要转义换行符?该文件仍然需要它。
  • 为什么您的编辑没有显示您在问题第一部分提供的字符串,因为这样会更清楚?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 2019-02-07
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
相关资源
最近更新 更多