специальные символы, проанализированные из HTML - PullRequest
0 голосов
/ 02 августа 2010

У меня есть приложение, которое анализирует html-страницу и извлекает некоторый текст с использованием иностранных символов, например, 'Felvidà © k Ma'.Теперь я хочу ввести это в свою базу данных, но не в этом формате, а в оригинальном формате.Поэтому я могу преобразовать его в utf 8 перед записью в базу данных сервера sql или даже записью в текстовый файл.Вот оригинальный термин «Felvidék Ma».Я использую выражения регулярных выражений для анализа 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()

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

с иностранными символами, например, 'Felvidà© k Ma'

Вот тут-то и начинается твоя настоящая проблема, и потом мало что можно сделать, чтобы решить эту проблему. Не ясно, как вы получили строку, но она была создана из потока http, не обращая внимания на кодировку веб-страницы. HttpResponse.ContentEncoding, например.

Как только вы понимаете это правильно, все остальное просто. Не нужно ничего конвертировать, то, что вы пишете в базу данных - это фактический текст. Если вы не можете понять это, не забудьте обновить свой вопрос с подробностями, которые описывают, как вы получили строковое значение _html.

1 голос
/ 02 августа 2010

Я бы предложил преобразовать данные в UTF8 до или после того, как они пройдут через ваше приложение, если возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...