System.Text.Encodings.Web Writes a partial string (given offset and count) to the underlying TextWriter. A lookup map that maps individual ASCII chars to a single byte. Storing a 0 byte indicates that no mapping exists for this input. Returns false if is non-ASCII or if it maps to a zero value. A bitmap which represents all 64k codepoints in the Basic Multilingual Plane. Adds the given to the bitmap's allow list. Removes the given from the bitmap's allow list. Removes all HTML-sensitive characters from the bitmap's allow list. Removes from the bitmap's allow list all code points which aren't mapped to defined characters or which are otherwise always disallowed. Always-disallowed categories include Cc, Cs, Co, Cn, Zs [except U+0020 SPACE], Zl, and Zp. Queries the bitmap to see if the given is in the allow list. Queries the bitmap to see if the given code point is in the allow list. Allows efficient escaping for the library's built-in types (HTML, URL, JS). Assumes the following: (a) All C0 and C1 code points are disallowed. (b) Escaping 1 ASCII input character results in no more than 6 output characters. (c) All Unicode scalar values may be represented in escaped form. (d) The escaped form of any Unicode scalar value consists of only ASCII characters. A bitmap which represents allowed ASCII code points. A bitmap which represents the 64-bit pre-escaped form of the ASCII code points. A pre-escaped code point has the form [ WW 00 FF EE DD CC BB AA ], where AA - FF are the six-ASCII-byte escaped representation of the code point, zero-padded at the end. The high byte of the pre-escaped form is the number of non-zero bytes which make up the pre-escaped data. Example: If the escaped form of "@" is "%40", the pre-escaped form will be: 0x30_00_00_00_00_30_34_25. Iterate over the least significant bytes one-by-one to reconstruct the escaped representation, stopping when you hit a null byte. Given a scalar value, returns a value stating whether that value is present in this encoder's allow list. Contains helpers for manipulating spans so that we can keep unsafe code out of the common path. Tries writing four bytes to the span. If success, returns true. If the span is not large enough to hold four bytes, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing five bytes to the span. If success, returns true. If the span is not large enough to hold five bytes, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing six bytes to the span. If success, returns true. If the span is not large enough to hold six bytes, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing four chars to the span. If success, returns true. If the span is not large enough to hold four chars, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing five chars to the span. If success, returns true. If the span is not large enough to hold five chars, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing six chars to the span. If success, returns true. If the span is not large enough to hold six chars, leaves the span unchanged and returns false. Parameters are intended to be constant values. Tries writing a 64-bit value as little endian to the span. If success, returns true. If the span is not large enough to hold 8 bytes, leaves the span unchanged and returns false. A class that can escape a scalar value and write either UTF-16 or UTF-8 format. Represents a type used to do HTML encoding. Returns a default built-in instance of . Creates a new instance of HtmlEncoder with provided settings. Settings used to control how the created encodes, primarily which characters to encode. A new instance of the . Creates a new instance of HtmlEncoder specifying character to be encoded. Set of characters that the encoder is allowed to not encode. A new instance of the Some characters in might still get encoded, i.e. this parameter is just telling the encoder what ranges it is allowed to not encode, not what characters it must not encode. Represents a type used to do JavaScript encoding/escaping. Returns a default built-in instance of . Returns a built-in instance of that is less strict about what gets encoded. Unlike the , this encoder instance does not escape HTML-sensitive characters like <, >, &, etc. and hence must be used cautiously (for example, if the output data is within a response whose content-type is known with a charset set to UTF-8). Unlike the , the quotation mark is encoded as \" rather than \u0022. Unlike the (which only allows ), using this encoder instance allows to go through unescaped. Unlike the , this encoder instance allows some other characters to go through unescaped (for example, '+'), and hence must be used cautiously. Creates a new instance of JavaScriptEncoder with provided settings. Settings used to control how the created encodes, primarily which characters to encode. A new instance of the . Creates a new instance of JavaScriptEncoder specifying character to be encoded. Set of characters that the encoder is allowed to not encode. A new instance of the . Some characters in might still get encoded, i.e. this parameter is just telling the encoder what ranges it is allowed to not encode, not what characters it must not encode. An abstraction representing various text encoders. TextEncoder subclasses can be used to do HTML encoding, URI encoding, and JavaScript encoding. Instances of such subclasses can be accessed using , , and . Encodes a Unicode scalar into a buffer. Unicode scalar. The destination of the encoded text. Length of the destination in chars. Number of characters written to the . Returns false if is too small to fit the encoded text, otherwise returns true. This method is seldom called directly. One of the TextEncoder.Encode overloads should be used instead. Implementations of need to be thread safe and stateless. Finds index of the first character that needs to be encoded. The text buffer to search. The number of characters in the . This method is seldom called directly. It's used by higher level helper APIs. Determines if a given Unicode scalar will be encoded. Unicode scalar. Returns true if the will be encoded by this encoder, otherwise returns false. Maximum number of characters that this encoder can generate for each input character. Encodes the supplied string and returns the encoded text as a new string. String to encode. Encoded string. Encodes the supplied string into a . Encoded text is written to this output. String to be encoded. Encodes a substring into a . Encoded text is written to this output. String whose substring is to be encoded. The index where the substring starts. Number of characters in the substring. Encodes characters from an array into a . Encoded text is written to the output. Array of characters to be encoded. The index where the substring starts. Number of characters in the substring. Encodes the supplied UTF-8 text. A source buffer containing the UTF-8 text to encode. The destination buffer to which the encoded form of will be written. The number of bytes consumed from the buffer. The number of bytes written to the buffer. if there is further source data that needs to be encoded; if there is no further source data that needs to be encoded. An describing the result of the encoding operation. The buffers and must not overlap. Encodes the supplied characters. A source buffer containing the characters to encode. The destination buffer to which the encoded form of will be written. The number of characters consumed from the buffer. The number of characters written to the buffer. if there is further source data that needs to be encoded; if there is no further source data that needs to be encoded. An describing the result of the encoding operation. The buffers and must not overlap. Given a UTF-8 text input buffer, finds the first element in the input buffer which would be escaped by the current encoder instance. The UTF-8 text input buffer to search. The index of the first element in which would be escaped by the current encoder instance, or -1 if no data in requires escaping. Represents a filter which allows only certain Unicode code points through. Instantiates an empty filter (allows no code points through by default). Instantiates the filter by cloning the allow list of another . Instantiates the filter where only the character ranges specified by are allowed by the filter. Allows the character specified by through the filter. Allows all characters specified by through the filter. Allows all code points specified by . Allows all characters specified by through the filter. Allows all characters specified by through the filter. Resets this settings object by disallowing all characters. Disallows the character through the filter. Disallows all characters specified by through the filter. Disallows all characters specified by through the filter. Disallows all characters specified by through the filter. Gets an enumeration of all allowed code points. Retrieves the bitmap of allowed characters from this settings object. The data is returned readonly byref. Represents a type used to do URL encoding. Returns a default built-in instance of . Creates a new instance of UrlEncoder with provided settings. Settings used to control how the created encodes, primarily which characters to encode. A new instance of the . Creates a new instance of UrlEncoder specifying character to be encoded. Set of characters that the encoder is allowed to not encode. A new instance of the . Some characters in might still get encoded, i.e. this parameter is just telling the encoder what ranges it is allowed to not encode, not what characters it must not encode. Contains helpers for dealing with Unicode code points. The last code point defined by the Unicode specification. Returns a bitmap of all BMP code points as a series of little-endian 32-bit values. On other-endian architectures, caller must convert each 32-bit integer to native endianness before using the data. Given a Unicode scalar value, returns the UTF-8 representation of the value. The return value's bytes should be popped from the LSB. Determines whether the given scalar value is in the supplementary plane and thus requires 2 characters to be represented in UTF-16 (as a surrogate pair). Represents a contiguous range of Unicode code points. Currently only the Basic Multilingual Plane is supported. Creates a new . The first code point in the range. The number of code points in the range. The first code point in this range. The number of code points in this range. Creates a new from a span of characters. The first character in the range. The last character in the range. The representing this span. Contains predefined instances which correspond to blocks from the Unicode 7.0 specification. An empty . This range contains no code points. A which contains all characters in the Unicode Basic Multilingual Plane (U+0000..U+FFFF). A corresponding to the 'Basic Latin' Unicode block (U+0000..U+007F). See https://www.unicode.org/charts/PDF/U0000.pdf for the full set of characters in this block. A corresponding to the 'Latin-1 Supplement' Unicode block (U+0080..U+00FF). See https://www.unicode.org/charts/PDF/U0080.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended-A' Unicode block (U+0100..U+017F). See https://www.unicode.org/charts/PDF/U0100.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended-B' Unicode block (U+0180..U+024F). See https://www.unicode.org/charts/PDF/U0180.pdf for the full set of characters in this block. A corresponding to the 'IPA Extensions' Unicode block (U+0250..U+02AF). See https://www.unicode.org/charts/PDF/U0250.pdf for the full set of characters in this block. A corresponding to the 'Spacing Modifier Letters' Unicode block (U+02B0..U+02FF). See https://www.unicode.org/charts/PDF/U02B0.pdf for the full set of characters in this block. A corresponding to the 'Combining Diacritical Marks' Unicode block (U+0300..U+036F). See https://www.unicode.org/charts/PDF/U0300.pdf for the full set of characters in this block. A corresponding to the 'Greek and Coptic' Unicode block (U+0370..U+03FF). See https://www.unicode.org/charts/PDF/U0370.pdf for the full set of characters in this block. A corresponding to the 'Cyrillic' Unicode block (U+0400..U+04FF). See https://www.unicode.org/charts/PDF/U0400.pdf for the full set of characters in this block. A corresponding to the 'Cyrillic Supplement' Unicode block (U+0500..U+052F). See https://www.unicode.org/charts/PDF/U0500.pdf for the full set of characters in this block. A corresponding to the 'Armenian' Unicode block (U+0530..U+058F). See https://www.unicode.org/charts/PDF/U0530.pdf for the full set of characters in this block. A corresponding to the 'Hebrew' Unicode block (U+0590..U+05FF). See https://www.unicode.org/charts/PDF/U0590.pdf for the full set of characters in this block. A corresponding to the 'Arabic' Unicode block (U+0600..U+06FF). See https://www.unicode.org/charts/PDF/U0600.pdf for the full set of characters in this block. A corresponding to the 'Syriac' Unicode block (U+0700..U+074F). See https://www.unicode.org/charts/PDF/U0700.pdf for the full set of characters in this block. A corresponding to the 'Arabic Supplement' Unicode block (U+0750..U+077F). See https://www.unicode.org/charts/PDF/U0750.pdf for the full set of characters in this block. A corresponding to the 'Thaana' Unicode block (U+0780..U+07BF). See https://www.unicode.org/charts/PDF/U0780.pdf for the full set of characters in this block. A corresponding to the 'NKo' Unicode block (U+07C0..U+07FF). See https://www.unicode.org/charts/PDF/U07C0.pdf for the full set of characters in this block. A corresponding to the 'Samaritan' Unicode block (U+0800..U+083F). See https://www.unicode.org/charts/PDF/U0800.pdf for the full set of characters in this block. A corresponding to the 'Mandaic' Unicode block (U+0840..U+085F). See https://www.unicode.org/charts/PDF/U0840.pdf for the full set of characters in this block. A corresponding to the 'Syriac Supplement' Unicode block (U+0860..U+086F). See https://www.unicode.org/charts/PDF/U0860.pdf for the full set of characters in this block. A corresponding to the 'Arabic Extended-B' Unicode block (U+0870..U+089F). See https://www.unicode.org/charts/PDF/U0870.pdf for the full set of characters in this block. A corresponding to the 'Arabic Extended-A' Unicode block (U+08A0..U+08FF). See https://www.unicode.org/charts/PDF/U08A0.pdf for the full set of characters in this block. A corresponding to the 'Devanagari' Unicode block (U+0900..U+097F). See https://www.unicode.org/charts/PDF/U0900.pdf for the full set of characters in this block. A corresponding to the 'Bengali' Unicode block (U+0980..U+09FF). See https://www.unicode.org/charts/PDF/U0980.pdf for the full set of characters in this block. A corresponding to the 'Gurmukhi' Unicode block (U+0A00..U+0A7F). See https://www.unicode.org/charts/PDF/U0A00.pdf for the full set of characters in this block. A corresponding to the 'Gujarati' Unicode block (U+0A80..U+0AFF). See https://www.unicode.org/charts/PDF/U0A80.pdf for the full set of characters in this block. A corresponding to the 'Oriya' Unicode block (U+0B00..U+0B7F). See https://www.unicode.org/charts/PDF/U0B00.pdf for the full set of characters in this block. A corresponding to the 'Tamil' Unicode block (U+0B80..U+0BFF). See https://www.unicode.org/charts/PDF/U0B80.pdf for the full set of characters in this block. A corresponding to the 'Telugu' Unicode block (U+0C00..U+0C7F). See https://www.unicode.org/charts/PDF/U0C00.pdf for the full set of characters in this block. A corresponding to the 'Kannada' Unicode block (U+0C80..U+0CFF). See https://www.unicode.org/charts/PDF/U0C80.pdf for the full set of characters in this block. A corresponding to the 'Malayalam' Unicode block (U+0D00..U+0D7F). See https://www.unicode.org/charts/PDF/U0D00.pdf for the full set of characters in this block. A corresponding to the 'Sinhala' Unicode block (U+0D80..U+0DFF). See https://www.unicode.org/charts/PDF/U0D80.pdf for the full set of characters in this block. A corresponding to the 'Thai' Unicode block (U+0E00..U+0E7F). See https://www.unicode.org/charts/PDF/U0E00.pdf for the full set of characters in this block. A corresponding to the 'Lao' Unicode block (U+0E80..U+0EFF). See https://www.unicode.org/charts/PDF/U0E80.pdf for the full set of characters in this block. A corresponding to the 'Tibetan' Unicode block (U+0F00..U+0FFF). See https://www.unicode.org/charts/PDF/U0F00.pdf for the full set of characters in this block. A corresponding to the 'Myanmar' Unicode block (U+1000..U+109F). See https://www.unicode.org/charts/PDF/U1000.pdf for the full set of characters in this block. A corresponding to the 'Georgian' Unicode block (U+10A0..U+10FF). See https://www.unicode.org/charts/PDF/U10A0.pdf for the full set of characters in this block. A corresponding to the 'Hangul Jamo' Unicode block (U+1100..U+11FF). See https://www.unicode.org/charts/PDF/U1100.pdf for the full set of characters in this block. A corresponding to the 'Ethiopic' Unicode block (U+1200..U+137F). See https://www.unicode.org/charts/PDF/U1200.pdf for the full set of characters in this block. A corresponding to the 'Ethiopic Supplement' Unicode block (U+1380..U+139F). See https://www.unicode.org/charts/PDF/U1380.pdf for the full set of characters in this block. A corresponding to the 'Cherokee' Unicode block (U+13A0..U+13FF). See https://www.unicode.org/charts/PDF/U13A0.pdf for the full set of characters in this block. A corresponding to the 'Unified Canadian Aboriginal Syllabics' Unicode block (U+1400..U+167F). See https://www.unicode.org/charts/PDF/U1400.pdf for the full set of characters in this block. A corresponding to the 'Ogham' Unicode block (U+1680..U+169F). See https://www.unicode.org/charts/PDF/U1680.pdf for the full set of characters in this block. A corresponding to the 'Runic' Unicode block (U+16A0..U+16FF). See https://www.unicode.org/charts/PDF/U16A0.pdf for the full set of characters in this block. A corresponding to the 'Tagalog' Unicode block (U+1700..U+171F). See https://www.unicode.org/charts/PDF/U1700.pdf for the full set of characters in this block. A corresponding to the 'Hanunoo' Unicode block (U+1720..U+173F). See https://www.unicode.org/charts/PDF/U1720.pdf for the full set of characters in this block. A corresponding to the 'Buhid' Unicode block (U+1740..U+175F). See https://www.unicode.org/charts/PDF/U1740.pdf for the full set of characters in this block. A corresponding to the 'Tagbanwa' Unicode block (U+1760..U+177F). See https://www.unicode.org/charts/PDF/U1760.pdf for the full set of characters in this block. A corresponding to the 'Khmer' Unicode block (U+1780..U+17FF). See https://www.unicode.org/charts/PDF/U1780.pdf for the full set of characters in this block. A corresponding to the 'Mongolian' Unicode block (U+1800..U+18AF). See https://www.unicode.org/charts/PDF/U1800.pdf for the full set of characters in this block. A corresponding to the 'Unified Canadian Aboriginal Syllabics Extended' Unicode block (U+18B0..U+18FF). See https://www.unicode.org/charts/PDF/U18B0.pdf for the full set of characters in this block. A corresponding to the 'Limbu' Unicode block (U+1900..U+194F). See https://www.unicode.org/charts/PDF/U1900.pdf for the full set of characters in this block. A corresponding to the 'Tai Le' Unicode block (U+1950..U+197F). See https://www.unicode.org/charts/PDF/U1950.pdf for the full set of characters in this block. A corresponding to the 'New Tai Lue' Unicode block (U+1980..U+19DF). See https://www.unicode.org/charts/PDF/U1980.pdf for the full set of characters in this block. A corresponding to the 'Khmer Symbols' Unicode block (U+19E0..U+19FF). See https://www.unicode.org/charts/PDF/U19E0.pdf for the full set of characters in this block. A corresponding to the 'Buginese' Unicode block (U+1A00..U+1A1F). See https://www.unicode.org/charts/PDF/U1A00.pdf for the full set of characters in this block. A corresponding to the 'Tai Tham' Unicode block (U+1A20..U+1AAF). See https://www.unicode.org/charts/PDF/U1A20.pdf for the full set of characters in this block. A corresponding to the 'Combining Diacritical Marks Extended' Unicode block (U+1AB0..U+1AFF). See https://www.unicode.org/charts/PDF/U1AB0.pdf for the full set of characters in this block. A corresponding to the 'Balinese' Unicode block (U+1B00..U+1B7F). See https://www.unicode.org/charts/PDF/U1B00.pdf for the full set of characters in this block. A corresponding to the 'Sundanese' Unicode block (U+1B80..U+1BBF). See https://www.unicode.org/charts/PDF/U1B80.pdf for the full set of characters in this block. A corresponding to the 'Batak' Unicode block (U+1BC0..U+1BFF). See https://www.unicode.org/charts/PDF/U1BC0.pdf for the full set of characters in this block. A corresponding to the 'Lepcha' Unicode block (U+1C00..U+1C4F). See https://www.unicode.org/charts/PDF/U1C00.pdf for the full set of characters in this block. A corresponding to the 'Ol Chiki' Unicode block (U+1C50..U+1C7F). See https://www.unicode.org/charts/PDF/U1C50.pdf for the full set of characters in this block. A corresponding to the 'Cyrillic Extended-C' Unicode block (U+1C80..U+1C8F). See https://www.unicode.org/charts/PDF/U1C80.pdf for the full set of characters in this block. A corresponding to the 'Georgian Extended' Unicode block (U+1C90..U+1CBF). See https://www.unicode.org/charts/PDF/U1C90.pdf for the full set of characters in this block. A corresponding to the 'Sundanese Supplement' Unicode block (U+1CC0..U+1CCF). See https://www.unicode.org/charts/PDF/U1CC0.pdf for the full set of characters in this block. A corresponding to the 'Vedic Extensions' Unicode block (U+1CD0..U+1CFF). See https://www.unicode.org/charts/PDF/U1CD0.pdf for the full set of characters in this block. A corresponding to the 'Phonetic Extensions' Unicode block (U+1D00..U+1D7F). See https://www.unicode.org/charts/PDF/U1D00.pdf for the full set of characters in this block. A corresponding to the 'Phonetic Extensions Supplement' Unicode block (U+1D80..U+1DBF). See https://www.unicode.org/charts/PDF/U1D80.pdf for the full set of characters in this block. A corresponding to the 'Combining Diacritical Marks Supplement' Unicode block (U+1DC0..U+1DFF). See https://www.unicode.org/charts/PDF/U1DC0.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended Additional' Unicode block (U+1E00..U+1EFF). See https://www.unicode.org/charts/PDF/U1E00.pdf for the full set of characters in this block. A corresponding to the 'Greek Extended' Unicode block (U+1F00..U+1FFF). See https://www.unicode.org/charts/PDF/U1F00.pdf for the full set of characters in this block. A corresponding to the 'General Punctuation' Unicode block (U+2000..U+206F). See https://www.unicode.org/charts/PDF/U2000.pdf for the full set of characters in this block. A corresponding to the 'Superscripts and Subscripts' Unicode block (U+2070..U+209F). See https://www.unicode.org/charts/PDF/U2070.pdf for the full set of characters in this block. A corresponding to the 'Currency Symbols' Unicode block (U+20A0..U+20CF). See https://www.unicode.org/charts/PDF/U20A0.pdf for the full set of characters in this block. A corresponding to the 'Combining Diacritical Marks for Symbols' Unicode block (U+20D0..U+20FF). See https://www.unicode.org/charts/PDF/U20D0.pdf for the full set of characters in this block. A corresponding to the 'Letterlike Symbols' Unicode block (U+2100..U+214F). See https://www.unicode.org/charts/PDF/U2100.pdf for the full set of characters in this block. A corresponding to the 'Number Forms' Unicode block (U+2150..U+218F). See https://www.unicode.org/charts/PDF/U2150.pdf for the full set of characters in this block. A corresponding to the 'Arrows' Unicode block (U+2190..U+21FF). See https://www.unicode.org/charts/PDF/U2190.pdf for the full set of characters in this block. A corresponding to the 'Mathematical Operators' Unicode block (U+2200..U+22FF). See https://www.unicode.org/charts/PDF/U2200.pdf for the full set of characters in this block. A corresponding to the 'Miscellaneous Technical' Unicode block (U+2300..U+23FF). See https://www.unicode.org/charts/PDF/U2300.pdf for the full set of characters in this block. A corresponding to the 'Control Pictures' Unicode block (U+2400..U+243F). See https://www.unicode.org/charts/PDF/U2400.pdf for the full set of characters in this block. A corresponding to the 'Optical Character Recognition' Unicode block (U+2440..U+245F). See https://www.unicode.org/charts/PDF/U2440.pdf for the full set of characters in this block. A corresponding to the 'Enclosed Alphanumerics' Unicode block (U+2460..U+24FF). See https://www.unicode.org/charts/PDF/U2460.pdf for the full set of characters in this block. A corresponding to the 'Box Drawing' Unicode block (U+2500..U+257F). See https://www.unicode.org/charts/PDF/U2500.pdf for the full set of characters in this block. A corresponding to the 'Block Elements' Unicode block (U+2580..U+259F). See https://www.unicode.org/charts/PDF/U2580.pdf for the full set of characters in this block. A corresponding to the 'Geometric Shapes' Unicode block (U+25A0..U+25FF). See https://www.unicode.org/charts/PDF/U25A0.pdf for the full set of characters in this block. A corresponding to the 'Miscellaneous Symbols' Unicode block (U+2600..U+26FF). See https://www.unicode.org/charts/PDF/U2600.pdf for the full set of characters in this block. A corresponding to the 'Dingbats' Unicode block (U+2700..U+27BF). See https://www.unicode.org/charts/PDF/U2700.pdf for the full set of characters in this block. A corresponding to the 'Miscellaneous Mathematical Symbols-A' Unicode block (U+27C0..U+27EF). See https://www.unicode.org/charts/PDF/U27C0.pdf for the full set of characters in this block. A corresponding to the 'Supplemental Arrows-A' Unicode block (U+27F0..U+27FF). See https://www.unicode.org/charts/PDF/U27F0.pdf for the full set of characters in this block. A corresponding to the 'Braille Patterns' Unicode block (U+2800..U+28FF). See https://www.unicode.org/charts/PDF/U2800.pdf for the full set of characters in this block. A corresponding to the 'Supplemental Arrows-B' Unicode block (U+2900..U+297F). See https://www.unicode.org/charts/PDF/U2900.pdf for the full set of characters in this block. A corresponding to the 'Miscellaneous Mathematical Symbols-B' Unicode block (U+2980..U+29FF). See https://www.unicode.org/charts/PDF/U2980.pdf for the full set of characters in this block. A corresponding to the 'Supplemental Mathematical Operators' Unicode block (U+2A00..U+2AFF). See https://www.unicode.org/charts/PDF/U2A00.pdf for the full set of characters in this block. A corresponding to the 'Miscellaneous Symbols and Arrows' Unicode block (U+2B00..U+2BFF). See https://www.unicode.org/charts/PDF/U2B00.pdf for the full set of characters in this block. A corresponding to the 'Glagolitic' Unicode block (U+2C00..U+2C5F). See https://www.unicode.org/charts/PDF/U2C00.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended-C' Unicode block (U+2C60..U+2C7F). See https://www.unicode.org/charts/PDF/U2C60.pdf for the full set of characters in this block. A corresponding to the 'Coptic' Unicode block (U+2C80..U+2CFF). See https://www.unicode.org/charts/PDF/U2C80.pdf for the full set of characters in this block. A corresponding to the 'Georgian Supplement' Unicode block (U+2D00..U+2D2F). See https://www.unicode.org/charts/PDF/U2D00.pdf for the full set of characters in this block. A corresponding to the 'Tifinagh' Unicode block (U+2D30..U+2D7F). See https://www.unicode.org/charts/PDF/U2D30.pdf for the full set of characters in this block. A corresponding to the 'Ethiopic Extended' Unicode block (U+2D80..U+2DDF). See https://www.unicode.org/charts/PDF/U2D80.pdf for the full set of characters in this block. A corresponding to the 'Cyrillic Extended-A' Unicode block (U+2DE0..U+2DFF). See https://www.unicode.org/charts/PDF/U2DE0.pdf for the full set of characters in this block. A corresponding to the 'Supplemental Punctuation' Unicode block (U+2E00..U+2E7F). See https://www.unicode.org/charts/PDF/U2E00.pdf for the full set of characters in this block. A corresponding to the 'CJK Radicals Supplement' Unicode block (U+2E80..U+2EFF). See https://www.unicode.org/charts/PDF/U2E80.pdf for the full set of characters in this block. A corresponding to the 'Kangxi Radicals' Unicode block (U+2F00..U+2FDF). See https://www.unicode.org/charts/PDF/U2F00.pdf for the full set of characters in this block. A corresponding to the 'Ideographic Description Characters' Unicode block (U+2FF0..U+2FFF). See https://www.unicode.org/charts/PDF/U2FF0.pdf for the full set of characters in this block. A corresponding to the 'CJK Symbols and Punctuation' Unicode block (U+3000..U+303F). See https://www.unicode.org/charts/PDF/U3000.pdf for the full set of characters in this block. A corresponding to the 'Hiragana' Unicode block (U+3040..U+309F). See https://www.unicode.org/charts/PDF/U3040.pdf for the full set of characters in this block. A corresponding to the 'Katakana' Unicode block (U+30A0..U+30FF). See https://www.unicode.org/charts/PDF/U30A0.pdf for the full set of characters in this block. A corresponding to the 'Bopomofo' Unicode block (U+3100..U+312F). See https://www.unicode.org/charts/PDF/U3100.pdf for the full set of characters in this block. A corresponding to the 'Hangul Compatibility Jamo' Unicode block (U+3130..U+318F). See https://www.unicode.org/charts/PDF/U3130.pdf for the full set of characters in this block. A corresponding to the 'Kanbun' Unicode block (U+3190..U+319F). See https://www.unicode.org/charts/PDF/U3190.pdf for the full set of characters in this block. A corresponding to the 'Bopomofo Extended' Unicode block (U+31A0..U+31BF). See https://www.unicode.org/charts/PDF/U31A0.pdf for the full set of characters in this block. A corresponding to the 'CJK Strokes' Unicode block (U+31C0..U+31EF). See https://www.unicode.org/charts/PDF/U31C0.pdf for the full set of characters in this block. A corresponding to the 'Katakana Phonetic Extensions' Unicode block (U+31F0..U+31FF). See https://www.unicode.org/charts/PDF/U31F0.pdf for the full set of characters in this block. A corresponding to the 'Enclosed CJK Letters and Months' Unicode block (U+3200..U+32FF). See https://www.unicode.org/charts/PDF/U3200.pdf for the full set of characters in this block. A corresponding to the 'CJK Compatibility' Unicode block (U+3300..U+33FF). See https://www.unicode.org/charts/PDF/U3300.pdf for the full set of characters in this block. A corresponding to the 'CJK Unified Ideographs Extension A' Unicode block (U+3400..U+4DBF). See https://www.unicode.org/charts/PDF/U3400.pdf for the full set of characters in this block. A corresponding to the 'Yijing Hexagram Symbols' Unicode block (U+4DC0..U+4DFF). See https://www.unicode.org/charts/PDF/U4DC0.pdf for the full set of characters in this block. A corresponding to the 'CJK Unified Ideographs' Unicode block (U+4E00..U+9FFF). See https://www.unicode.org/charts/PDF/U4E00.pdf for the full set of characters in this block. A corresponding to the 'Yi Syllables' Unicode block (U+A000..U+A48F). See https://www.unicode.org/charts/PDF/UA000.pdf for the full set of characters in this block. A corresponding to the 'Yi Radicals' Unicode block (U+A490..U+A4CF). See https://www.unicode.org/charts/PDF/UA490.pdf for the full set of characters in this block. A corresponding to the 'Lisu' Unicode block (U+A4D0..U+A4FF). See https://www.unicode.org/charts/PDF/UA4D0.pdf for the full set of characters in this block. A corresponding to the 'Vai' Unicode block (U+A500..U+A63F). See https://www.unicode.org/charts/PDF/UA500.pdf for the full set of characters in this block. A corresponding to the 'Cyrillic Extended-B' Unicode block (U+A640..U+A69F). See https://www.unicode.org/charts/PDF/UA640.pdf for the full set of characters in this block. A corresponding to the 'Bamum' Unicode block (U+A6A0..U+A6FF). See https://www.unicode.org/charts/PDF/UA6A0.pdf for the full set of characters in this block. A corresponding to the 'Modifier Tone Letters' Unicode block (U+A700..U+A71F). See https://www.unicode.org/charts/PDF/UA700.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended-D' Unicode block (U+A720..U+A7FF). See https://www.unicode.org/charts/PDF/UA720.pdf for the full set of characters in this block. A corresponding to the 'Syloti Nagri' Unicode block (U+A800..U+A82F). See https://www.unicode.org/charts/PDF/UA800.pdf for the full set of characters in this block. A corresponding to the 'Common Indic Number Forms' Unicode block (U+A830..U+A83F). See https://www.unicode.org/charts/PDF/UA830.pdf for the full set of characters in this block. A corresponding to the 'Phags-pa' Unicode block (U+A840..U+A87F). See https://www.unicode.org/charts/PDF/UA840.pdf for the full set of characters in this block. A corresponding to the 'Saurashtra' Unicode block (U+A880..U+A8DF). See https://www.unicode.org/charts/PDF/UA880.pdf for the full set of characters in this block. A corresponding to the 'Devanagari Extended' Unicode block (U+A8E0..U+A8FF). See https://www.unicode.org/charts/PDF/UA8E0.pdf for the full set of characters in this block. A corresponding to the 'Kayah Li' Unicode block (U+A900..U+A92F). See https://www.unicode.org/charts/PDF/UA900.pdf for the full set of characters in this block. A corresponding to the 'Rejang' Unicode block (U+A930..U+A95F). See https://www.unicode.org/charts/PDF/UA930.pdf for the full set of characters in this block. A corresponding to the 'Hangul Jamo Extended-A' Unicode block (U+A960..U+A97F). See https://www.unicode.org/charts/PDF/UA960.pdf for the full set of characters in this block. A corresponding to the 'Javanese' Unicode block (U+A980..U+A9DF). See https://www.unicode.org/charts/PDF/UA980.pdf for the full set of characters in this block. A corresponding to the 'Myanmar Extended-B' Unicode block (U+A9E0..U+A9FF). See https://www.unicode.org/charts/PDF/UA9E0.pdf for the full set of characters in this block. A corresponding to the 'Cham' Unicode block (U+AA00..U+AA5F). See https://www.unicode.org/charts/PDF/UAA00.pdf for the full set of characters in this block. A corresponding to the 'Myanmar Extended-A' Unicode block (U+AA60..U+AA7F). See https://www.unicode.org/charts/PDF/UAA60.pdf for the full set of characters in this block. A corresponding to the 'Tai Viet' Unicode block (U+AA80..U+AADF). See https://www.unicode.org/charts/PDF/UAA80.pdf for the full set of characters in this block. A corresponding to the 'Meetei Mayek Extensions' Unicode block (U+AAE0..U+AAFF). See https://www.unicode.org/charts/PDF/UAAE0.pdf for the full set of characters in this block. A corresponding to the 'Ethiopic Extended-A' Unicode block (U+AB00..U+AB2F). See https://www.unicode.org/charts/PDF/UAB00.pdf for the full set of characters in this block. A corresponding to the 'Latin Extended-E' Unicode block (U+AB30..U+AB6F). See https://www.unicode.org/charts/PDF/UAB30.pdf for the full set of characters in this block. A corresponding to the 'Cherokee Supplement' Unicode block (U+AB70..U+ABBF). See https://www.unicode.org/charts/PDF/UAB70.pdf for the full set of characters in this block. A corresponding to the 'Meetei Mayek' Unicode block (U+ABC0..U+ABFF). See https://www.unicode.org/charts/PDF/UABC0.pdf for the full set of characters in this block. A corresponding to the 'Hangul Syllables' Unicode block (U+AC00..U+D7AF). See https://www.unicode.org/charts/PDF/UAC00.pdf for the full set of characters in this block. A corresponding to the 'Hangul Jamo Extended-B' Unicode block (U+D7B0..U+D7FF). See https://www.unicode.org/charts/PDF/UD7B0.pdf for the full set of characters in this block. A corresponding to the 'CJK Compatibility Ideographs' Unicode block (U+F900..U+FAFF). See https://www.unicode.org/charts/PDF/UF900.pdf for the full set of characters in this block. A corresponding to the 'Alphabetic Presentation Forms' Unicode block (U+FB00..U+FB4F). See https://www.unicode.org/charts/PDF/UFB00.pdf for the full set of characters in this block. A corresponding to the 'Arabic Presentation Forms-A' Unicode block (U+FB50..U+FDFF). See https://www.unicode.org/charts/PDF/UFB50.pdf for the full set of characters in this block. A corresponding to the 'Variation Selectors' Unicode block (U+FE00..U+FE0F). See https://www.unicode.org/charts/PDF/UFE00.pdf for the full set of characters in this block. A corresponding to the 'Vertical Forms' Unicode block (U+FE10..U+FE1F). See https://www.unicode.org/charts/PDF/UFE10.pdf for the full set of characters in this block. A corresponding to the 'Combining Half Marks' Unicode block (U+FE20..U+FE2F). See https://www.unicode.org/charts/PDF/UFE20.pdf for the full set of characters in this block. A corresponding to the 'CJK Compatibility Forms' Unicode block (U+FE30..U+FE4F). See https://www.unicode.org/charts/PDF/UFE30.pdf for the full set of characters in this block. A corresponding to the 'Small Form Variants' Unicode block (U+FE50..U+FE6F). See https://www.unicode.org/charts/PDF/UFE50.pdf for the full set of characters in this block. A corresponding to the 'Arabic Presentation Forms-B' Unicode block (U+FE70..U+FEFF). See https://www.unicode.org/charts/PDF/UFE70.pdf for the full set of characters in this block. A corresponding to the 'Halfwidth and Fullwidth Forms' Unicode block (U+FF00..U+FFEF). See https://www.unicode.org/charts/PDF/UFF00.pdf for the full set of characters in this block. A corresponding to the 'Specials' Unicode block (U+FFF0..U+FFFF). See https://www.unicode.org/charts/PDF/UFFF0.pdf for the full set of characters in this block. Formats a code point as the hex string "U+XXXX". The input value doesn't have to be a real code point in the Unicode codespace. It can be any integer. The Unicode replacement character U+FFFD. Returns the Unicode plane (0 through 16, inclusive) which contains this code point. Returns a Unicode scalar value from two code points representing a UTF-16 surrogate pair. Given a Unicode scalar value, gets the number of UTF-16 code units required to represent this value. Decomposes an astral Unicode scalar into UTF-16 high and low surrogate code units. Given a Unicode scalar value, gets the number of UTF-8 code units required to represent this value. Returns iff is an ASCII character ([ U+0000..U+007F ]). Per http://www.unicode.org/glossary/#ASCII, ASCII is only U+0000..U+007F. Returns iff is in the Basic Multilingual Plane (BMP). Returns iff is a UTF-16 high surrogate code point, i.e., is in [ U+D800..U+DBFF ], inclusive. Returns iff is between and , inclusive. Returns iff is a UTF-16 low surrogate code point, i.e., is in [ U+DC00..U+DFFF ], inclusive. Returns iff is a UTF-16 surrogate code point, i.e., is in [ U+D800..U+DFFF ], inclusive. Returns iff is a valid Unicode code point, i.e., is in [ U+0000..U+10FFFF ], inclusive. Returns iff is a valid Unicode scalar value, i.e., is in [ U+0000..U+D7FF ], inclusive; or [ U+E000..U+10FFFF ], inclusive. Get a pinnable reference to the builder. Does not ensure there is a null char after This overload is pattern matched in the C# 7.3+ compiler so you can omit the explicit method call, and write eg "fixed (char* c = builder)" Get a pinnable reference to the builder. Ensures that the builder has a null char after Returns the underlying storage of the builder. Returns a span around the contents of the builder. Ensures that the builder has a null char after Resize the internal buffer either by doubling current buffer size or by adding to whichever is greater. Number of chars requested beyond current position. Map from an ASCII char to its hex value, e.g. arr['b'] == 11. 0xFF means it's not a hex digit. TextEncoder does not implement MaxOutputCharsPerInputChar correctly. Attribute used to indicate a source generator should create a function for marshalling arguments instead of relying on the runtime to generate an equivalent marshalling function at run-time. This attribute is meaningless if the source generator associated with it is not enabled. The current built-in source generator only supports C# and only supplies an implementation when applied to static, partial, non-generic methods. Initializes a new instance of the . Name of the library containing the import. Gets the name of the library containing the import. Gets or sets the name of the entry point to be called. Gets or sets how to marshal string arguments to the method. If this field is set to a value other than , must not be specified. Gets or sets the used to control how string arguments to the method are marshalled. If this field is specified, must not be specified or must be set to . Gets or sets whether the callee sets an error (SetLastError on Windows or errno on other platforms) before returning from the attributed method. Specifies how strings should be marshalled for generated p/invokes Indicates the user is suppling a specific marshaller in . Use the platform-provided UTF-8 marshaller. Use the platform-provided UTF-16 marshaller.