Расшифровать набор символов HTML 5

Я не могу декодировать следующий код HTMl 5 10:00 AM в моем коде C#, после использования HttpUtility.HtmlDecode("10:00 AM"); я получаю тот же вывод вместо серийного вывода "10:00 утра".

Однако, когда я использую другие наборы символов HTML, такие как & или же > затем HttpUtility.HtmlDecode дает желаемый вывод, есть ли способ декодировать наборы символов HTML5 в C#

Я также пытался с System.Net.WebUtility.HtmlDecode, System.Uri.UnescapeDataString пока тот же вывод

2 ответа

Решение

Как прокомментировал Svein Terje Gaup, эта проблема связана с тем, что.NET Framework не поддерживает сущности HTML5.

Поскольку.NET Framework стал открытым исходным кодом, вы можете проверить код и изменить его, чтобы отразить необходимые изменения, как кто-то уже сделал. Если вы проверите этот запрос извлечения, вы увидите проблему: между сущностями HTML4 и сущностями HTML5 произошли серьезные изменения, которые они не договорились о том, как их исправить. Это просто означает, что.NET Framework не будет поддерживать сущности HTML5, пока не будет принято проектное решение.

Тем временем вы можете взять разность коммитов и создать свой собственный анализатор сущностей HTML5 (который представляет собой просто замену строки и некоторый поиск по словарю).

Создан пользовательский декодер https://github.com/rolwincrasta/HTML5Decode

Ссылка https://github.com/dotnet/corefx/pull/13152

Другие вопросы по тегам