3

我正在使用一个旧软件,该软件需要从类似 dos 的命令提示符环境中打印,并且该软件需要将日文字体等双字节字符打印到默认打印机。但是,每次我尝试打印时,字符都会像乱码(mojibake)一样出现,并且无法让日语正确显示在物理纸上。换句话说,如果我打印一个名为 test.txt 的文件,在 test.txt 内容中包含以下内容......

----------------
Hello
日本語です。
English
----------------

像“Hello and English”这样的单字节字符显示得很好,但不是“日本语です”。日文字符将在物理纸上显示为 {*}+{~=。(顺便说一句,我只是在命令提示符中使用了命令“print.exe test.txt”。)

注意我从 MS Word 文档甚至文本文档打印都没有问题。

此外,我使用的是 ESC/P 打印机(Epson GP-710)。同样默认情况下,由于 cmd.exe 默认打印到 LPT1,我将它映射到网络打印机,以便它可以打印到 USB(我很确定这与字体问题没有任何关系),通过如下所示。

1)共享打印机
2)NET USE LPT1: \\(PChostname123)\(printername) /PERSISTENT:YES

我同时使用 Windows 7(64 位)和 Windows Vista,两者都出现同样的问题。我在日本网站上阅读了一些文章,其中指出 Windows 95 dos 有一种解决方法,即在 Config.sys 文件或 autoexec.bat 文件中添加文本,但它似乎不适用于 Windows NT 版本。

由于我现在真的别无选择,只能使用这个旧程序,如果有人知道从 dos/cmd 提示符打印双字节字符,将非常感激。

4

1 回答 1

2

在批处理文件的开头,尝试添加以下行:

chcp 65001

这会将代码页设置为 UTF-8。它不会在命令提示符中正确显示,但可能会根据您的打印机正确打印。

有关代码页的更多信息,请参阅此 wiki 页面,或有关 Microsoft 值的完整列表,请参阅此 MSDN 文章

于 2013-10-28T20:37:34.097 回答