2017-08-02 2 views
3

Ich kann den folgenden HTMl 5 Code 10:00 AM in meinem C# Code nicht decodieren, nachdem ich HttpUtility.HtmlDecode("10:00 AM"); verwendet habe, bekomme ich den gleichen Ausgang anstelle des seriell ausgegebenen "10:00 AM".HTML 5 dekodieren Zeichensatz

jedoch, wenn ich andere HTML-Zeichensätze verwenden wie & oder > dann gibt HttpUtility.HtmlDecode die gewünschte Ausgabe, ist es eine Möglichkeit, HTML5-Zeichensätze in C# zu dekodieren

ich auch mit System.Net.WebUtility.HtmlDecode, System.Uri.UnescapeDataString noch die gleiche Leistung haben versucht

+3

Vielleicht ist diese offene Frage ist im Zusammenhang mit Ihrer Frage Erstellt: https://github.com/dotnet/corefx/issues/13036? –

Antwort

2

Als commented von Svein ist dies ein Problem mit dem .NET Framework unterstützt keine HTML5-Entitäten.

Da das .NET Framework als Open Source verfügbar ist, können Sie den Code überprüfen und ändern, um die erforderlichen Änderungen zu berücksichtigen, z. B. someone did already. Wenn Sie diese Pull-Anforderung auschecken, sehen Sie das Problem: Es gibt eine bahnbrechende Änderung zwischen HTML4-Entitäten und HTML5-Entitäten, über die sie sich nicht einigen konnten. Das bedeutet einfach, dass .NET Framework HTML5-Entitäten erst dann unterstützt, wenn eine Designentscheidung getroffen wurde.

Für Sie in der Zwischenzeit könnten Sie the diff Commit nehmen, und erstellen Sie Ihre eigenen HTML5-Entity-Parser (das ist einfach ein String-Ersatz und einige Wörterbuch-Lookup).