如何在 C# 中获得正确的 HTML 编码?

2024-04-17

我正在尝试从网络词典中获取某个单词的发音。例如,在下面的代码中,我想得到的发音good from http://collinsdictionary.com http://collinsdictionary.com

(HTTP Agility Pack此处使用)

static void test()
{
    String url = "http://www.collinsdictionary.com/dictionary/english/good";
    WebClient client = new WebClient();
    client.Encoding = System.Text.Encoding.UTF8;
    String html = client.DownloadString(url);
    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(html);
    HtmlAgilityPack.HtmlNode node = doc.DocumentNode.SelectSingleNode("//*[@id=\"good_1\"]/div[1]/h2/span/text()[1]");
    if (node == null)
    {
        Console.WriteLine("XPath not found.");
    }
    else
    {
        Console.WriteLine(node.WriteTo());
    }
}

我正期待着

 (ɡʊd

但我最多能得到的是

 (ɡ?d

如何做对呢?


问题不在于您对文本的解析,而在于控制台输出的问题。如果您从命令行应用程序执行此操作,则可以将控制台的输出编码设置为 unicode:

Console.OutputEncoding = System.Text.Encoding.Unicode;

您还需要确保控制台中的字体是支持 unicode 的字体。看到这个answer https://stackoverflow.com/a/5750227/573218了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 中获得正确的 HTML 编码? 的相关文章

随机推荐