Wpf WebBrowser.Print() 带有阿拉伯字符

Wpf WebBrowser.Print() with arabic character

我正在尝试使用 WebBrowser.Print() 来打印一个包含阿拉伯字符的 html 文件,问题是阿拉伯字符变成了奇怪的字符

下面是 html 文件代码:

<html>
    <head>
        <meta http-equiv="Content - Type" content="text / html; charset = windows - 1252" />
    </head>
    <body>
        <table border='0' style='width:300px;color:black;'>
            <tr>        
                <td colspan=3  align = center><b><font size= 4>القاسم</font></b> </td>  </tr><tr>       
                <td colspan=3>-------------------------------------------------------</td>  </tr><tr>
                <td colspan=2><b>1</b> بابول</td><td align = right>1.00 LBP</td></tr><tr>
                <td colspan=2><b>1</b> Biskrem</td><td align = right>3.00 LBP</td></tr><tr>
                <td colspan=2><b>1</b> تويكس</td><td align = right>1.00 LBP</td></tr><tr>      
                <td colspan=3>You Bought 3 Items</td></tr><tr>      
                <td colspan=3>-------------------------------------------------------</td>  </tr><tr>       
                <td>Subtotal</td>       <td colspan=2 align = right>5.00 LBP</td>   </tr><tr>       
                <td>Tax</td>        <td colspan=2 align = right>0.00 LBP</td>   </tr><tr>       
                <td colspan=3>-------------------------------------------------------</td>  </tr><tr>       
                <td>Total</td>      <td colspan=2 align = right><b>5.00 LBP</b></td>    </tr><tr>       
                <td colspan=3>-------------------------------------------------------</td>  </tr><tr>       
                <td colspan=3>القاسم Team .</td>    
            </tr> 
        </table>
        <br/>
    </body>
</html>

它应该是这样的:

但是当使用 webBrowser.Print() 打印时,它看起来像这样:

没有良好的Minimal, Reproducible Example和其他调试细节,不可能提供完整的解决方案。

也就是说,您显示的输出显然是文本编码问题。您的 HTML 显示 windows-1252 的编码,一种不包含任何阿拉伯字符的字符编码。因此,即使您显然已经在 HTML 文件中输入了阿拉伯字符,大概使用的编辑器将文件视为支持阿拉伯字符的 UTF8,bytes文件将被呈现为就好像它在 windows-1252.

的规定编码中一样

本应表示阿拉伯字符的字节将根据 windows-1252 编码进行解释,而不是您期望的阿拉伯字符。因为这就是您告诉 HTML 渲染器要做的事情。

最有可能的是,如果您只是在 HTML 中提供正确的编码名称,它就会起作用。例如:

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

另请注意,原始 HTML 中的额外空格不应存在。我在上面的示例中删除了它们。

有关详细信息,请参见例如Declaring character encodings in HTML