c# - 不使用字体的处理

标签 c# windows azure process phantomjs

我正在尝试打印由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/

相关文章:

c# - 是否有(更好的)方法来查找对属性 setter 的所有引用?

windows - 批处理命令删除具有特定名称和年龄的文件夹

windows - 如何将非客户区扩展到小于 16 像素的窗口?

deployment - asp.net MVC 4 在 azure 上部署无法加载文件或程序集 'DotNetOpenAuth.Core'

python - Azure Functions Python blobTrigger 如何修复 "Microsoft.Azure.WebJobs.Extensions.Storage: Object reference not set to an instance of an object."?

c# - Windows 7 C# 中的音量控制

c# - 如何使用 async 和 await 发出大量并发 Web 请求?

c# - 在 ASP.NET MVC 中单击按钮时呈现局部 View

java - 缺少内置 java api 时出现 ClassNotFound 异常

azure - PowerShell - 将导入的 csv 列添加到新导出的 csv 中