我正在尝试获取一个英语和韩语混合的网页。浏览器可以很好地获取和显示页面,但是当我尝试以编程方式抓取它时,我无法正确显示韩文字符。
我知道您可以在StreamReader中指定编码,但我还没有找到一个可用的编码。
这是我用来阅读回复的代码:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet));
response.CharacterSet返回UTF8。我还尝试了所有基本的编码选项 - ASCII,BigEndian,Default,Unicode,UTF32,UTF7,并手动添加Encoding.UTF8。
我也尝试过通过CultureInfo:
CultureInfo kr = CultureInfo.GetCultureInfo("ko");
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(kr.TextInfo.ANSICodePage));
同时使用“ko”和“ko-KR”。我得到了所有这些不同类型的不同结果,但没有一个是正确的。
我也直接尝试了代码页:
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(949));
response.ContentEncoding
返回一个空字符串。我的想法已经不多了。
编辑:这是我所期待的一个例子:
프로젝트:
这就是我得到的:
//ASCII == ??????
//BigEndian == ़汩湫â¨ç‰¥æ˜½âˆ¯æ©³â½¤ç°æ”
//Default == Ãâ€â€žÃ«Â¡Å“ì Âʸ:
//Unicode == Ãâ€â€žÃ«Â¡Å“ì Âʸ
//UTF32 == ���������ï
//UTF7 == Ô„ë¡œì Âʸ
//UTF8 == 프로ì 트
答案 0 :(得分:1)
FWIW:流阅读器可能无法正常运行。
首选使用HttpWebRequest Class进行浏览器请求(或者当您收到302回复或gzip压缩和/或分块编码时,您会很快感到抱歉)
我将此提升为答案,因为可能很好地解决了您已经遇到的问题。我不知道你的回答是什么当然是