我试图在由exe程序(phantomjs)生成的PDF中打印中文字符。 但是这些字符最终为“?”。 该进程是在C#中的一个工作者angular色中创build的。
当在同一个虚拟机的cmd窗口中手动创build相同的进程时,一切正常。
但是,中文语言包是从同一个可以手动成功创buildPDF的pipe理员帐号安装的。
为了确保所有用户从语言包中看到相同的字体,我将这些设置添加到机器上的所有系统用户, 如此处所述 。
这个过程是从C#开始的
Process.Start(new ProcessStartInfo { UseShellExecute = true, FileName = "phantomjs.exe", Arguments = "pdf.js" });
那怎么可能,我的手动cmd-window进程正确地使用中文字体,而不是C#启动的进程?
原来错误的字符编码会导致问号。 从内容输入到HTML文档和输出设置的所有内容都必须使用正确的编码(例如UTF-8),然后才能正常工作。