从java代码创建bat,保留撇号和重音字符

时间:2017-02-17 21:44:13

标签: java windows batch-file

我创建了一个java gui来生成bat文件。 当我写下包含这样一个字符串的蝙蝠:“L'uomopiùforte”notepad ++显示:“L?uomo pi-forte”

以下是代码:

FileOutputStream fos = new FileOutputStream(bat);
Writer w = new BufferedWriter(new OutputStreamWriter(fos, "Cp850"));
String stringa = "L’uomo più forte"
w.write(stringa);
w.write("\n");
w.write("pause");
w.write("\n");
w.flush();
w.close();

我不得不使用cp850进行dos使用。使用base charset bat会出错。

解决方案?

2 个答案:

答案 0 :(得分:0)

而不是使用“Cp850”

Writer w = new BufferedWriter(new OutputStreamWriter(fos, "Cp850"));

尝试使用“UTF-8”

Writer w = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));

有关UTF-8编码Go Here的更多信息。

不要忘记在 stringa 字符串变量声明/初始化的末尾放置分号(; ),并在 try / catch中包围您的代码阻止处理可能的 FileNotFoundException UnsupportedEncodingException IOException 例外。

...对于NotePad,要提供新行,您还需要提供 \ r 标记:

w.write("\r\n");

答案 1 :(得分:0)

您可以执行以下操作:

  • 打开cmd.exe命令提示符会话。
  • 执行echo L’uomo più forte>text.txt命令。
  • 打开text.txt文件并将字符串复制到那里。
  • 将其粘贴到您的代码中。

例如,我创建了text.txt文件,将其重命名为test.bat并附加了echo命令。这是我的test.bat文件:

@echo off

echo L'uomo pi— forte

......这是输出:

L'uomo più forte

如果某些字符未正确显示,则使用的代码页不包含此字符。

注意:我建议您使用标准的Windows记事本。在这些情况下,notepad ++程序可能会导致奇怪的输出。