在以下示例中,我从服务器获得响应; 但是我需要设置ASCII或UTF8编码类型吗?
Dim objURI As Uri = New Uri(URL)
Dim wReq As WebRequest = WebRequest.Create(objURI)
Dim wResp As WebResponse = wReq.GetResponse()
Dim respStream As Stream = wResp.GetResponseStream()
Dim reader As StreamReader = New StreamReader(respStream, Encoding.ASCII)
Dim respHTML As String = reader.ReadToEnd()
wResp.Close()
答案 0 :(得分:1)
这实际上取决于Web服务器发送响应的编码。
docs州:
字符编码由。设置 编码参数和缓冲区 size设置为1024字节。该 StreamReader对象尝试检测 通过查看第一个编码 流的三个字节。它 自动识别UTF-8, little-endian Unicode和big-endian 如果文件以。开头的Unicode文本 适当的字节顺序标记。
在我看来,只要让运行时识别编码就应该是安全的。
答案 1 :(得分:1)
这取决于您对服务器的期望。对于HTML(这似乎是您的期望),ASCII在99%的时间用于英语页面,并且应该允许您解码所有HTML元素,无论如何。但是,您应该做的第一件事就是阅读文档head元素中的任何“meta”标记;这些将指定正文中文本的编码。通常,如果它不是ASCII,则它是UTF-8,它向后兼容ASCII(但会显示一些奇怪的字符,用于2字节和4字节字符代码)。