不使用字体的过程

Process not using fonts

我正在尝试在 exe 进程 (phantomjs) 生成的 PDF 中打印汉字。然而,这些字符最终以“?”结尾。该进程是在 C# 的辅助角色中创建的。

在同一台虚拟机的 cmd-window 中手动创建相同进程时,一切正常。

安装了中文语言包,但是,来自可以手动成功创建 PDF 的同一个管理员帐户。

为了确保所有用户从语言包中看到相同的字体,我将设置添加到机器上的所有系统用户as described here

过程是这样从C#开始的

Process.Start(new ProcessStartInfo
{
    UseShellExecute = true,
    FileName = "phantomjs.exe",
    Arguments = "pdf.js"
});

怎么会是我手动cmd-window进程使用的是中文字体,而C#启动的进程不是?

原来是错误的字符编码导致了问号。 从内容输入到 HTML 文档和输出设置的所有内容都必须使用正确的编码(例如 UTF-8),然后才能正常工作。