Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将UTF-8网页下载到字符串中_Vb.net_String_Utf 8 - Fatal编程技术网

Vb.net 将UTF-8网页下载到字符串中

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

这是一个新手问题

我阅读下载了一个网页,其内容以UTF-8编码。然后,当我使用字符串从页面读取内容时,页面被转换为字节数组

我需要将UTF-8转换成拉丁文1/ANSI,因为RichText和MessageBox似乎就是这样使用的(我得到了一些有趣的字符)

有没有更直接的方法来加载UTF-8页面并将其转换为ANSI/Latin1

多谢各位


编辑:调用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使用的编码的更新,请参阅。