首页 > 解决方案 > WPF在TextBlock中显示马拉雅拉姆语

问题描述

我正在开发一个 WPF 应用程序以从网页中提取标题栏(语言为马拉雅拉姆语)并显示在 textBlock 上。我面临的问题是显示文本(马拉雅拉姆字母)被问号/注册标志类型的租船人取代。

如何在 WPF 文本块或文本框中正确呈现马拉雅拉姆字体?

这是 TextBlock 的 XAML 代码

<TextBlock Name="media" TextWrapping="Wrap" />

这是从网站上抓取数据的代码

using (WebClient client = new WebClient())
{
    var read = client.OpenRead(url);
    HtmlDocument doc = new HtmlDocument();
    doc.Load(read);
    var title = doc.DocumentNode.SelectSingleNode("//title").InnerText;
    string text = doc.DocumentNode.InnerHtml;

    media.Dispatcher.Invoke(() =>
    {
        media.Text = title + Environment.NewLine;
    });
}

我得到的结果

标签: c#wpf

解决方案


我认为您的问题不是在 TextBlock 中显示文本,而是从服务器获取文本。您应该使用正确的编码加载文档,如下所示:

WebClient client = new WebClient();
var data = client.DownloadData(url);
var html = Encoding.UTF8.GetString(data); //use proper encoding

或者尝试使用HtmlAgilityPack


推荐阅读