CJ7*_*CJ7 3 .net vb.net encoding utf-8 streamreader
StreamReader.ReadToEnd()
? (一个)
Dim strWebResponse As String
Dim Request As HttpWebRequest = WebRequest.Create(Url)
Using Response As WebResponse = smsRequest.GetResponse()
Using reader As StreamReader = New StreamReader(Response.GetResponseStream())
strWebResponse = reader.ReadToEnd()
End Using
End Using
Run Code Online (Sandbox Code Playgroud)
(b)中
Dim encoding As New UTF8Encoding()
Dim strWebResponse As String
Dim Request As HttpWebRequest = WebRequest.Create(Url)
Using Response As WebResponse = Request.GetResponse()
Dim responseBuffer(Response.ContentLength - 1) As Byte
Response.GetResponseStream().Read(responseBuffer, 0, Response.ContentLength - 1)
strWebResponse = encoding.GetString(responseBuffer)
End Using
Run Code Online (Sandbox Code Playgroud)
Jim*_*hel 11
所使用的标准编码StreamReader
是Encoding.Default,将从机器根据您的Windows版本,并且已经设置的语言环境而异机. Encoding.UTF8
.
我无法记住默认值是什么,所以我更喜欢使用StreamReader
允许我指定编码的构造函数.例如:
Using reader As StreamReader = New StreamReader(Response.GetResponseStream(), Encoding.UTF8)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅构造函数文档.
如果在示例a中使用该构造函数,则结果将与示例b中的结果相同.
你应该使用UTF-8吗?这取决于您下载的页面.如果您下载的页面是使用UTF-8编码的,那么是的,您应该使用UTF-8.如果HTTP标头中没有定义字符集,则UTF-8应该是默认值.但是您需要检查Content-Type
标头以确定页面是否使用其他编码.例如,Content-Type
标题可能是:
application/xml; charset=ISO-8859-2
Run Code Online (Sandbox Code Playgroud)
您必须检查它的ContentType属性HttpWebResponse
,检查是否有charset
字段,并根据该属性正确设置编码.
或者,只需使用UTF-8并希望获得最佳效果.
归档时间: |
|
查看次数: |
17207 次 |
最近记录: |