使用韩文语言的Curl Lib下载html

时间:2013-06-21 14:11:42

标签: c# visual-studio-2010 libcurl decoding

我正在使用Curl LIB下载韩国网站的html,但问题是我没有正确看到网站字符,下面列出了一个示例:

示例我想得到的价格是:

42,000원

但是当我得到HTML时,我得到它:

42,000��

与所有其他韩国人物相同怎么办?我在过去遇到类似的事情,但那是在HTTPWEBREQUEST,但现在不知道如何处理这个问题。

感谢任何帮助。

更新

这是一个示例链接KOREAN SAMPLE SITE。我使用的功能如下(Curl Lib):

 public string Post(string URL, string post,string refferer)
    {
        result = "";
        try
        {
            string UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0";
            Curl.GlobalInit((int)CURLinitFlag.CURL_GLOBAL_ALL);
            Easy easy = new Easy();
            Easy.WriteFunction wf = new Easy.WriteFunction(OnWriteData);
            easy.SetOpt(CURLoption.CURLOPT_URL, URL);
            easy.SetOpt(CURLoption.CURLOPT_REFERER, refferer);
            easy.SetOpt(CURLoption.CURLOPT_TIMEOUT, "6000000");
            easy.SetOpt(CURLoption.CURLOPT_WRITEFUNCTION, wf);
            easy.SetOpt(CURLoption.CURLOPT_USERAGENT, UserAgent);
            easy.SetOpt(CURLoption.CURLOPT_COOKIEFILE, CookieFile);
            easy.SetOpt(CURLoption.CURLOPT_COOKIEJAR, CookieFile);
            easy.SetOpt(CURLoption.CURLOPT_FOLLOWLOCATION, true);
            easy.SetOpt(CURLoption.CURLOPT_ENCODING,Encoding.UTF8); // NOT SURE OF THIS

            if (post != "")
            {
                easy.SetOpt(CURLoption.CURLOPT_POST, true);
                easy.SetOpt(CURLoption.CURLOPT_POSTFIELDS, post);
            }


            if (URL.Contains("https"))
            {
                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYHOST, 1);
                easy.SetOpt(CURLoption.CURLOPT_SSL_VERIFYPEER, 0);
            }

            easy.Perform();
            easy.Cleanup();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex);
        }
        return result;
    }

我需要将获取返回html添加为:

..meta name="description" content="시크릿라벨 ♩">
..meta name="keywords" content="시크릿라벨">

而不是无处不在。

1 个答案:

答案 0 :(得分:0)

这解决了我的问题:

 result += Encoding.GetEncoding(949).GetString(buf);