C# 如何将unicode字符传递给stdin或以其他方式传递给PDF

C# 如何将unicode字符传递给stdin或以其他方式传递给PDF,c#,.net,asp.net-mvc,pdf-generation,wkhtmltopdf,C#,.net,Asp.net Mvc,Pdf Generation,Wkhtmltopdf,ASP.NET/Mono MVC4 C#应用程序使用WkHtmlToPdf将html转换为pdf: public ActionResult WkHtmlToPdf() { byte[] result = ConvertHtmlToPdf("<html><body>Testöäüõ</body></html>"); var ms = new MemoryStream(result); r

ASP.NET/Mono MVC4 C#应用程序使用WkHtmlToPdf将html转换为pdf:

    public ActionResult WkHtmlToPdf()
    {
        byte[] result = ConvertHtmlToPdf("<html><body>Testöäüõ</body></html>");
        var ms = new MemoryStream(result);
        return new FileStreamResult(ms, "application/pdf");
    }



    static byte[] ConvertHtmlToPdf(string html)
    {
        var p = new Process
        {
            StartInfo =
            {
                CreateNoWindow = true,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                RedirectStandardInput = true,
                UseShellExecute = false,
                FileName = Environment.OSVersion.Platform == PlatformID.Win32NT ?
            @"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe" : "/usr/bin/wkhtmltopdf"
            }
        };

        p.StartInfo.Arguments = "- -";
        p.Start();
        StreamWriter myStreamWriter = p.StandardInput;
        myStreamWriter.Write(html);
        myStreamWriter.Close();
        var buffer = new byte[32768];
        byte[] file;
        using (var ms = new MemoryStream())
        {
            while (true)
            {
                var read = p.StandardOutput.BaseStream.Read(buffer, 0, buffer.Length);
                if (read <= 0)
                {
                    break;
                }
                ms.Write(buffer, 0, read);
            }
            file = ms.ToArray();
        }
        p.WaitForExit(60000);
        var returnCode = p.ExitCode;
        p.Close();
        return returnCode == 0 ? file : null;
    }
public ActionResult WkHtmlToPdf()
{
byte[]result=ConvertHtmlToPdf(“Testöäüõ”);
var ms=新的内存流(结果);
返回新文件streamresult(ms,“application/pdf”);
}
静态字节[]转换HTMLTOPDF(字符串html)
{
var p=新流程
{
StartInfo=
{
CreateNoWindow=true,
重定向标准输出=真,
RedirectStandardError=true,
重定向标准输入=真,
UseShellExecute=false,
FileName=Environment.OSVersion.PlatformID==PlatformID.Win32NT?
@“C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe”:“/usr/bin/wkhtmltopdf”
}
};
p、 StartInfo.Arguments=“-”;
p、 Start();
StreamWriter myStreamWriter=p.StandardInput;
myStreamWriter.Write(html);
myStreamWriter.Close();
var buffer=新字节[32768];
字节[]文件;
使用(var ms=new MemoryStream())
{
while(true)
{
var read=p.StandardOutput.BaseStream.read(缓冲区,0,缓冲区,长度);

如果(读取您是否尝试在对wkhtmltopdf的命令行调用中指定编码

wkhtmltopdf --encoding utf-8
和/或将其添加到html:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">