我试图抓取一个英文和韩文混合的网页。浏览器可以抓取并显示页面,但是当我尝试以编程方式抓取它时,我无法让韩文字符正确显示。用StreamReader读取外语网页
我知道你可以在StreamReader中指定一个编码,但是我还没有找到一个可以工作的编码。
这是我用来读取响应代码:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet));
response.CharacterSet返回UTF8。我还尝试了所有基本编码选项 - ASCII,BigEndian,默认,Unicode,UTF32,UTF7,并手动添加Encoding.UTF8。
我也试着去了解它通过的CultureInfo:同时使用 “KO” 和 “KO-KR”
CultureInfo kr = CultureInfo.GetCultureInfo("ko");
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(kr.TextInfo.ANSICodePage));
。我得到了所有这些不同类型的不同结果,但没有一个是正确的。
我也试过直接将代码页:
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(949));
response.ContentEncoding
返回一个空字符串。我正在用尽想法。
编辑:这是我很期待的一个例子:
프로젝트:
这里就是我得到:
//ASCII == ??????
//BigEndian == ़汩湫â¨ç‰¥æ˜½âˆ¯æ©³â½¤ç°æ”
//Default == Ãâ€â€žÃ«Â¡Å“ì Âʸ:
//Unicode == Ãâ€â€žÃ«Â¡Å“ì Âʸ
//UTF32 == ���������ï
//UTF7 == Ô„ë¡œì Âʸ
//UTF8 == 프로ì 트
你说它不能正确显示,但你没有显示显示代码。 – Paddy
您使用HTTP请求发送了哪些标头?将此与浏览器发送的内容进行比较(Fiddler对此类事情非常有帮助)。 – Richard