long - in html




Как декодировать HTML-объекты в C? (2)

Мне интересен неэкранированный текст, например: \ отображается в \ in C. Кто-нибудь знает хорошую библиотеку?

В качестве ссылки в Википедии список ссылок на объекты символов XML и HTML .


Для другой ссылки на открытый код в C для декодирования этих сущностей HTML вы можете проверить утилиту командной строки uni2ascii / ascii2uni. Соответствующие файлы являются enttbl. {C, h} для поиска сущностей и putu8.c, который преобразуется из UTF32 в UTF8.

uni2ascii


Сегодня у меня было немного свободного времени, и я с нуля написал декодер: entities.c , entities.h .

Единственная функция с внешней связью

size_t decode_html_entities_utf8(char *dest, const char *src);

Если src является нулевым указателем, строка будет взята из dest , т.е. объекты будут декодированы на месте. В противном случае декодированная строка будет помещена в dest - который должен указывать на буфер, достаточно большой, чтобы вместить символы strlen(src) + 1 - и src изменится.

Функция вернет длину декодированной строки.

Обратите внимание, что я не проводил всесторонних тестов, поэтому высока вероятность ошибок ...





c