这是一个新手问题。
我阅读the following question下载一个内容以UTF-8编码的网页。然后页面被转换为字节数组,而我正在使用String来从页面中读取内容。
我需要将UTF-8转换为Latin1 / ANSI,因为这就是RichText和MessageBox似乎使用的东西(我正在变得有趣的角色)。
是否有更直接的方式来下载UTF-8页面并将其转换为ANSI / Latin1?
谢谢。
编辑:当callig MessageBox时,重音字符未按预期显示:
内容= CStr(e.Result)
'ThéÃtre,Métro MessageBox.Show(内容)
答案 0 :(得分:4)
String
一直使用unicode,因此您不必将其转换为。重要的是,当您下载页面时,您需要确保标记从 UTF-8源加载数据。
MSDN有一个关于将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对象的编码属性设置为UTF-8来解决问题:
client.Encoding = System.Text.Encoding.UTF8