我正在尝试打印由exe进程(phantomjs)生成的PDF中的中文字符。然而这些字符最终都是“?”。该进程是在 C# 中的辅助角色中创建的。
在同一虚拟机上的 cmd 窗口中手动创建相同的进程时,一切正常。
但是,中文语言包是从可以成功手动创建 PDF 的同一个管理员帐户安装的。
为了确保所有用户从语言包中看到相同的字体,我将设置添加到机器上的所有系统用户 as described here .
该过程是这样从 C# 启动的
Process.Start(new ProcessStartInfo
{
UseShellExecute = true,
FileName = "phantomjs.exe",
Arguments = "pdf.js"
});
为什么我的手动cmd-window进程可以正确使用中文字体,而C#启动的进程却不能呢?
最佳答案
事实证明错误的字符编码导致了问号。 从内容输入到 HTML 文档和输出设置的所有内容都必须使用正确的编码(例如 UTF-8),然后才能正常工作。
关于c# - 不使用字体的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29517601/