4

这可能与其他韩语编码问题不同。

我必须刮掉这个网站,它是韩文。

他们网站上的一个例句是“개인정보보호를 위해 뒤로가기 버튼 대신 검색결과 화면 상단과 하단의 이전 버튼읋닰 용해

我正在使用 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

但仍然没有得到正确的韩文字符?你认为是什么问题?

4

2 回答 2

3

该页面很可能不是特定的韩语编码,而是其中一种 Unicode 编码。

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

可以确定的是,检查服务器返回的内容类型的元标记和标头。


更新(从评论中收集):

由于 content-type 标头是EUC-KR,因此相应的代码页是 51949,这就是您需要用来检索页面的内容。

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

于 2012-04-05T15:51:38.950 回答
0

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

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

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

于 2016-05-23T07:39:44.667 回答