C# - 韩文编码

时间:2012-04-05 15:46:29

标签: c#

这可能与其他韩国编码问题有所不同。

有这个网站,我必须刮,它是韩国人。

他们网站上的一个例句是这样的 “개인정보보호를위해뒤로가기버튼대신검색결과화면단을을을을의이전버튼을사용하시기바랍니다。”

我正在使用HttpWebRequest和HttpWebResponse来抓取网站。

这是我如何检索html

- 部分代码 -

using (Stream data = resp.GetResponseStream())
{
    response.Append(new StreamReader(data, Encoding.GetEncoding(code), true).ReadToEnd());
}

现在我的问题是,我没有得到正确的韩文字符。在我的“代码”变量中,我基于MSDN http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx中的代码页(让我缩小范围)。

这是韩国代码页: 51949,50225,20949,20833,10003,949

但仍未获得正确的韩文字符?你认为这是什么问题?

2 个答案:

答案 0 :(得分:3)

页面很可能不是特定的韩文编码,而是Unicode编码之一。

尝试Encoding.UTF8Encoding.Default(UTF-16)而不是特定的代码页。还有Encoding.UTF7Encoding.UTF32,但它们并不常见。

要确定,请检查服务器返回的内容类型的元标记和标题。


更新(从公告中收集):

由于内容类型标题为EUC-KR,因此相应的代码页为51949,这是您需要用来检索页面的内容。

目前尚不清楚您是将其写入文件 - 在编写文件时需要使用相同的编码,或将byte[]从原始文件转换为输出文件编码(使用Encoding.Convert)。

答案 1 :(得分:0)

虽然我遇到了完全相同的问题,但我已经完成了下面的代码:

Encoding.UTF8.GetString(DownloadData(URL));

这将WebClient GET请求的输出直接转换为UTF8编码。