Vb.net 将UTF-8网页下载到字符串中
这是一个新手问题 我阅读下载了一个网页,其内容以UTF-8编码。然后,当我使用字符串从页面读取内容时,页面被转换为字节数组 我需要将UTF-8转换成拉丁文1/ANSI,因为RichText和MessageBox似乎就是这样使用的(我得到了一些有趣的字符) 有没有更直接的方法来加载UTF-8页面并将其转换为ANSI/Latin1 多谢各位Vb.net 将UTF-8网页下载到字符串中,vb.net,string,utf-8,Vb.net,String,Utf 8,这是一个新手问题 我阅读下载了一个网页,其内容以UTF-8编码。然后,当我使用字符串从页面读取内容时,页面被转换为字节数组 我需要将UTF-8转换成拉丁文1/ANSI,因为RichText和MessageBox似乎就是这样使用的(我得到了一些有趣的字符) 有没有更直接的方法来加载UTF-8页面并将其转换为ANSI/Latin1 多谢各位 编辑:调用MessageBox时,重音字符不会按预期显示: 内容=CStr(如结果) “ThÃÃÃ、tre、Métro .NET中的MessageBox.S
编辑:调用MessageBox时,重音字符不会按预期显示: 内容=CStr(如结果) “ThÃÃÃ、tre、Métro
.NET中的MessageBox.Show(Content)
String
始终使用unicode,因此您不必将其转换为其他格式。重要的是,下载页面时,需要确保标记从UTF-8源加载数据
具有将UTF-8编码数据加载到字符串中的示例:
Private Function ReadAuthor(binary_file As Stream) As String
Dim encoding As System.Text.Encoding = System.Text.Encoding.UTF8
' Read string from binary file with UTF8 encoding
Dim buffer(30) As Byte
binary_file.Read(buffer, 0, 30)
Return encoding.GetString(buffer)
End Function
更新
使用WebClient.DownloadString
时,将自动转换为字符串,不需要类似于上述代码的代码。自动转换使用WebClient.encoding指定的编码,因此应通过将WebClient对象的encoding属性设置为UTF-8来解决此问题:
client.Encoding = System.Text.Encoding.UTF8
谢谢你的提示。异步例程在DownloadStringCompletedEventArgs变量中提供网页:如何将其转换为流?有关如何指定WebClient.DownloadString使用的编码的更新,请参阅。