long - in html
Как декодировать HTML-объекты в C? (2)
Мне интересен неэкранированный текст, например: \
отображается в \
in C. Кто-нибудь знает хорошую библиотеку?
В качестве ссылки в Википедии список ссылок на объекты символов XML и HTML .
Для другой ссылки на открытый код в C для декодирования этих сущностей HTML вы можете проверить утилиту командной строки uni2ascii / ascii2uni. Соответствующие файлы являются enttbl. {C, h} для поиска сущностей и putu8.c, который преобразуется из UTF32 в UTF8.
Сегодня у меня было немного свободного времени, и я с нуля написал декодер: entities.c , entities.h .
Единственная функция с внешней связью
size_t decode_html_entities_utf8(char *dest, const char *src);
Если src
является нулевым указателем, строка будет взята из dest
, т.е. объекты будут декодированы на месте. В противном случае декодированная строка будет помещена в dest
- который должен указывать на буфер, достаточно большой, чтобы вместить символы strlen(src) + 1
- и src
изменится.
Функция вернет длину декодированной строки.
Обратите внимание, что я не проводил всесторонних тестов, поэтому высока вероятность ошибок ...