我有一个应用程序正在解析html页面并提取一些带有外来字符的文本,例如'Felvidék Ma'。现在我想把它输入我的数据库,但不是这种格式,而是原始格式。因此,在写入sql server数据库或甚至写入文本文件之前,我可以将其转换为utf 8。这是最初的术语'FelvidékMa'。我使用正则表达式来解析html所以我不确定是否有一个选项可以帮助解决这个问题。这是我的代码:
If Not String.IsNullOrEmpty(_html) Then
'get all href tags in the html page
Dim regex As Regex = New Regex( _
"<TotalFound>(?<link>.*?)</TotalFound>", _
RegexOptions.IgnoreCase _
Or RegexOptions.CultureInvariant _
Or RegexOptions.IgnorePatternWhitespace _
Or RegexOptions.Compiled _
)
Dim ms As MatchCollection = regex.Matches(_html)
Dim url As String = String.Empty
For Each m As Match In ms
url = m.Groups("link").Value
If Not String.IsNullOrEmpty(url) Then
我找到了问题的根源。它是在获取html页面并读取流时。我将默认编码更改为UTF 8,现在一切都很好。再次感谢。
Dim reader As StreamReader = New StreamReader(responseStream, Encoding.Default)
returnContent = reader.ReadToEnd()
答案 0 :(得分:2)
使用外国字符,例如'Felvidék Ma'
这就是你真正遇到麻烦的地方,之后几乎无法解决这个问题。目前尚不清楚你是如何获得字符串的,但它是从http流创建的,而没有注意网页编码。例如,HttpResponse.ContentEncoding。
一旦你做对了,其他一切都很简单。无需转换任何内容,您写入dbase的内容是实际文本。如果您无法解决这个问题,请务必使用描述如何获得_html字符串值的详细信息更新您的问题。
答案 1 :(得分:1)
我建议在可能的情况下,在数据通过您的应用程序之前或之后将数据转换为UTF8。