Как найти код utf8 из HTML-документа? - PullRequest
0 голосов
/ 29 октября 2018

В настоящее время я собираю информацию с веб-сайта, который использует иконки шрифтов для идентификации информации. Когда я нахожу элемент, содержащий значок, я получаю символ "?", как и ожидалось. Я хочу идентифицировать код символа utf8 и, следовательно, иметь возможность определить, какой символ использовался.

Я хочу сделать что-то вроде этого:

For Each HTMLElement in HTMLDocument.getElementsbyClassName("icon-class")
  utf8code = HTMLElement.innerText
  If utf8code = U+00AE Then
    'do things
  End If
Next

1 Ответ

0 голосов
/ 04 ноября 2018

Хорошо, хотя я не смог полностью достичь цели идентификации кода utf8 любого символа, мне удалось найти способ идентифицировать символы для моего варианта использования.

Как оказалосьв моем случае это около 30 символов, и они появляются более или менее последовательно в кодовой странице UTF8.Затем нужно было понять, как формируется код UTF8, и пользователь @RemyLebeau помог мне указать верное направление.Это видео было очень полезно для этого: https://youtu.be/MijmeoH9LT4
Моя собственная сумма выглядит следующим образом:1-й байт: удалить первые n + 1 бит, где n = общее количество найденных байтов2 - й байт: удалить первые два битарезультат должен быть объединен, начиная с самого правого бита и двигаясь влево, любые пробелы, оставшиеся до кратного 8, должны быть заполнены нулями.так как в моем примере с 4 байтами:243, 178, 129, 13911110011, 10110010, 10000001, 10001011 11110 - 011 , 10 - 110010 , 10 - 000001 , 10 - 001011 000 (011) (11, 0010) (0000, 01) (001011)00001111, 00100000, 01001011F, 20, 4Bтеперь код, который я использовал, чтобы помочь определить, какой символ я нашел:

Dim utf8Encoding As New System.Text.UTF8Encoding(True)
Dim encodedString() As Byte
encodedString = utf8Encoding.GetBytes(HTML_Element.innerText)
Select Case encodedstring(3)
    Case 147
    Case 155
End Select

В моем конкретном случае я смог использовать хеш-таблицу, чтобы связать значение 4-го байта с отдельным значением, которое мне нужно.Это хорошее решение?нет, он работает только в определенных случаях, и возможность просто получить код UTF8 создаст решение, которое будет более эффективным и элегантным для всех случаев использования.Но так как этот проект предназначен только для личного использования, и из-за недостатка личного понимания и отсутствия людей, желающих помочь мне понять, это решение работает для меня, и поэтому я решил, что включу его, если кто-то окажется ваналогичная ситуация, когда вышеупомянутый ярлык может помочь.

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