UnicodeDecodingConformance Enumeration

.NET Framework (current version)

Controls how Unicode characters are interpreted by the HtmlDecode methods.

Namespace:   System.Net.Configuration
Assembly:  System (in System.dll)

public enum UnicodeDecodingConformance

Member nameDescription

Use automatic behavior. The decoding behavior is determined by current application's target Framework. For .NET Framework 4.5 and later, the Unicode encoding decoding is strict.


Use compatible behavior. Specifies that incoming data is not checked for validity before being decoded. For example, an input string of "�" would decode as U+D84C, which is an unpaired surrogate. Additionally, the decoder does not understand code points in the SMP unless they're represented as HTML-encoded surrogates, so the inputstring "𣎴" would result in the output string "𣎴".


Use loose behavior. Similar to Compat in that there are no validity checks, but the decoder also understands code points. The input string "𣎴" would decode into the character U+233B4 correctly. This switch is meant to provide maximum interoperability when the decoder doesn't know which format the provider is using to generate the encoded string.


Use strict behavior. Specifies that the incoming encoded data is checked for validity before being decoded. For example, an input string of "𣎴" would decode as U+233B4, but an input string of "��" would fail to decode properly. Already-decoded data in the string is not checked for validity. For example, an input string of "\ud800" will result in an output string of "\ud800", as the already-decoded surrogate is skipped during decoding, even though it is unpaired.

For more information on how Unicode characters are supposed to be encoded in HTML, see Using character escapes in markup and CSS.

.NET Framework
Available since 4.5
Return to top