3

介绍

我正在使用可以将“html”转换为图像的功能。对于图像创建,我使用“图像”功能(System.Drawing)。

功能工作正常(包括 html 样式等),除了我将在后面的问题中描述的一件事。

问题

出现问题在 html 中使用非英语语言时,虽然对于英语它工作正常。显然是 Unicode 问题,由于我的理解有限,我做错了。

string str ="<p> Have Good Day !!</p>"; //output : Have Good Day !!
string str2 = "<p>قطعا</p>"; //output : non-sense symbols like Omega

C# 代码

var html = String.Format("<h1>فقط</h1><p>قطعا</p>");

var htmlToImageConv = new NReco.ImageGenerator.HtmlToImageConverter();

var jpegBytes = htmlToImageConv.GenerateImage(html,ImageFormat.Png.ToString());

MemoryStream memstr = new MemoryStream(jpegBytes);

System.Drawing.Image img = System.Drawing.Image.FromStream(memstr,true,true);

img.Save(Server.MapPath("~/App_Images/My_Converted11.png"));

我一直在试图弄清楚如何解决这个问题,但还没有。如果有人可以帮助解决这个问题,请提供帮助。任何帮助参考都会有所帮助,我们将不胜感激。感谢您的宝贵时间。

4

1 回答 1

2

您必须<head> <meta>在 HTML 中设置标签并像这样定义字符集:

string html =  @"<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body>Hello world: 안녕하세요...</body></html>";

我希望这能帮到您。

于 2016-03-25T06:49:53.557 回答