[Serializable] |
The two bytes of an encoded character are stored in either little-endian or big-endian byte order depending on the computer architecture. In big-endian architectures the most significant byte is written and read first, while in little-endian architectures the least significant byte is written and read first.
A UTF-16 encoding can be prefixed by a byte order mark (U+FEFF) to indicate the byte order used. It is assumed that the encoding is big-endian if the byte order mark is hexadecimal 0xFEFF, and little-endian if the byte order mark is hexadecimal 0xFFFE. (A byte order mark can also precede files encoded in UTF-8 format, but in that case the byte order mark just indicates UTF-8 encoding; it does not indicate byte order. For more information, see the UTF8Encoding class.)
This class contains a constructor, UnicodeEncoding.#ctor, that can specify whether an encoding is little-endian or big-endian, and whether a byte order mark is used.
This class contains the UnicodeEncoding.GetCharCount method that reports the number of Unicode characters that result from decoding an array of bytes, and the UnicodeEncoding.GetChars method that actually decodes an array of bytes. The UnicodeEncoding.GetByteCount method reports the number of bytes that result from encoding strings or arrays of Unicode characters, and the UnicodeEncoding.GetBytes method actually encodes characters into an array of bytes.
The UnicodeEncoding.GetDecoder method obtains an object to decode bytes. The UnicodeEncoding.GetPreamble method can obtain an encoded Unicode byte order mark.
For more information about Unicode, see the Unicode Standard at www.unicode.org.
This class implements the Encoding abstract base class.
ctor #1 | Overloaded:.ctor() Default constructor. This constructor is called by derived class constructors to initialize state in this type.Initializes a new instance of the UnicodeEncoding class. |
ctor #2 | Overloaded:.ctor(bool bigEndian, bool byteOrderMark) Initializes a new instance of the UnicodeEncoding class, specifying whether to support little-endian or big-endian byte ordering and the Unicode byte order mark. |
CharSize | Represents the Unicode version 2.0 character size in bytes. |
BodyName (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.BodyName Gets the name for this encoding that can be used with mail agent body tags. |
CodePage (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.CodePage When overridden in a derived class, gets the code page identifier of this encoding. |
EncodingName (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.EncodingName Gets the human-readable description of the encoding. |
HeaderName (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.HeaderName Gets the name for this encoding that can be used with mail agent header tags. |
IsBrowserDisplay (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.IsBrowserDisplay Gets an indication whether this encoding can be used for display by browser clients. |
IsBrowserSave (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.IsBrowserSave Gets an indication whether this encoding can be used for saving by browser clients. |
IsMailNewsDisplay (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.IsMailNewsDisplay Gets and indication whether this encoding can be used for display by mail and news clients. |
IsMailNewsSave (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.IsMailNewsSave Gets an indication whether this encoding can be used for saving by mail and news clients. |
WebName (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.WebName Gets the name registered with the Internet Assigned Numbers Authority (IANA) for this encoding. |
WindowsCodePage (inherited from System.Text.Encoding) |
Read-only See base class member description: System.Text.Encoding.WindowsCodePage Gets the Windows operating system code page that most closely corresponds to this encoding. |
Equals | Overridden: Returns a value indicating whether this instance is equal to a specified object. |
GetByteCount (inherited from System.Text.Encoding) |
Overloaded:GetByteCount(char[] chars) See base class member description: System.Text.Encoding.GetByteCountCalculates the number of bytes required to encode a specified character array. |
GetByteCount | Overloaded:GetByteCount(string s) Overridden: Calculates the number of bytes required to store the results of encoding the characters from a specified String. |
GetByteCount | Overloaded:GetByteCount(char[] chars, int index, int count) Overridden: Calculates the number of bytes required to store the results of encoding a set of characters from a specified Unicode character array. |
GetBytes (inherited from System.Text.Encoding) |
Overloaded:GetBytes(char[] chars) See base class member description: System.Text.Encoding.GetBytesEncodes a specified character array into a byte array. |
GetBytes | Overloaded:GetBytes(string s) Overridden: Encodes the characters from a specified String and returns the results in a byte array. |
GetBytes (inherited from System.Text.Encoding) |
Overloaded:GetBytes(char[] chars, int index, int count) See base class member description: System.Text.Encoding.GetBytesEncodes a range of characters from a character array into a byte array. |
GetBytes | Overloaded:GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) Overridden: Encodes a specified range of elements from a Unicode character array and stores the results into a specified range of elements in a byte array. |
GetBytes | Overloaded:GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) Overridden: Encodes a specified range of characters from a String and stores the results into a specified range of elements in a byte array. |
GetCharCount (inherited from System.Text.Encoding) |
Overloaded:GetCharCount(byte[] bytes) See base class member description: System.Text.Encoding.GetCharCountCalculates the number of characters produced by decoding an array of bytes. |
GetCharCount | Overloaded:GetCharCount(byte[] bytes, int index, int count) Overridden: Calculates the number of characters that would result from decoding a specified range of elements in a byte array. |
GetChars (inherited from System.Text.Encoding) |
Overloaded:GetChars(byte[] bytes) See base class member description: System.Text.Encoding.GetCharsDecodes a byte array into an array of characters. |
GetChars (inherited from System.Text.Encoding) |
Overloaded:GetChars(byte[] bytes, int index, int count) See base class member description: System.Text.Encoding.GetCharsDecodes a range of bytes from a byte array into a character array. |
GetChars | Overloaded:GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) Overridden: Decodes a range of elements from a specified byte array and stores them as elements in a specified Unicode character array. |
GetDecoder | Overridden: Obtains a decoder that can convert a UTF-16 encoded sequence of bytes into a sequence of characters. |
GetEncoder (inherited from System.Text.Encoding) |
See base class member description: System.Text.Encoding.GetEncoder An Encoder for this encoding. |
GetHashCode | Overridden: Returns the hash code for this instance. |
GetMaxByteCount | Overridden: Calculates the maximum number of bytes required to encode a specified number of characters. |
GetMaxCharCount | Overridden: Calculates the maximum number of characters that can result from decoding a specified number of bytes. |
GetPreamble | Overridden: Returns a Unicode byte order mark encoded in big-endian or little-endian format, if the constructor for this instance requested byte order mark support. |
GetString (inherited from System.Text.Encoding) |
Overloaded:GetString(byte[] bytes) See base class member description: System.Text.Encoding.GetStringReturns a string containing the decoded representation of the specified byte array. |
GetString (inherited from System.Text.Encoding) |
Overloaded:GetString(byte[] bytes, int index, int count) See base class member description: System.Text.Encoding.GetStringReturns a string containing the decoded representation of a range of bytes in a byte array. |
GetType (inherited from System.Object) |
See base class member description: System.Object.GetType Derived from System.Object, the primary base class for all objects. |
ToString (inherited from System.Object) |
See base class member description: System.Object.ToString Derived from System.Object, the primary base class for all objects. |
Finalize (inherited from System.Object) |
See base class member description: System.Object.Finalize Derived from System.Object, the primary base class for all objects. |
MemberwiseClone (inherited from System.Object) |
See base class member description: System.Object.MemberwiseClone Derived from System.Object, the primary base class for all objects. |
Hierarchy:
public UnicodeEncoding(); |
bigEndian
byteOrderMark
public const int CharSize;
|
public virtual string BodyName {get;}
|
If the encoding cannot be used, the property value is the empty string ("").
public virtual int CodePage {get;}
|
public virtual string EncodingName {get;}
|
public virtual string HeaderName {get;}
|
If the encoding cannot be used, the string is empty.
public virtual bool IsBrowserDisplay {get;}
|
public virtual bool IsBrowserSave {get;}
|
public virtual bool IsMailNewsDisplay {get;}
|
public virtual bool IsMailNewsSave {get;}
|
public virtual string WebName {get;}
|
public virtual int WindowsCodePage {get;}
|
value
~UnicodeEncoding(); |
chars
Exception Type | Condition |
---|---|
ArgumentNullException | chars is null. |
Alternatively, Encoding.GetMaxByteCount can be used to determine the maximum number of bytes that will be produced from converting a given number of characters. A buffer of that size can then be reused for multiple conversions.
The Encoding.GetByteCount method generally uses less memory, whereas the Encoding.GetMaxByteCount method generally executes faster.
s
Exception Type | Condition |
---|---|
ArgumentNullException | s is null. |
ArgumentException | Return value is greater than Int32.MaxValue. -or- s contains an invalid Unicode surrogate pair. |
chars
index
count
Exception Type | Condition |
---|---|
ArgumentException | Return value is greater than Int32.MaxValue. -or- chars contains an invalid Unicode surrogate pair. |
ArgumentNullException | chars is null. |
ArgumentOutOfRangeException | index is less than zero. -or- count is less than zero. -or- index plus count is greater than the length of chars. |
chars
Exception Type | Condition |
---|---|
ArgumentNullException | chars is null. |
s
Exception Type | Condition |
---|---|
ArgumentNullException | s is null. |
ArgumentException | An invalid high or low member of a surrogate pair encountered during encoding. |
chars
index
count
Exception Type | Condition |
---|---|
ArgumentNullException | chars is null. |
ArgumentOutOfRangeException | The index and count parameters do not denote a valid range in chars. |
public override int GetBytes( |
chars
charIndex
charCount
bytes
byteIndex
Exception Type | Condition |
---|---|
ArgumentNullException | chars or bytes is null. |
ArgumentOutOfRangeException | charIndex, charCount or byteIndex is less than zero. -or- The sum of charIndex and charCount is greater than the length of chars. -or- byteIndex is greater than the length of bytes. |
ArgumentException | byteIndex is equal to the length of bytes. -or- No bytes have been stored into bytes. |
ArgumentException | An invalid high or low member of a surrogate pair encountered during encoding. |
public override int GetBytes( |
s
charIndex
charCount
bytes
byteIndex
Exception Type | Condition |
---|---|
ArgumentNullException | s or bytes is null. |
ArgumentOutOfRangeException | charIndex, charCount or byteIndex is less than zero. -or- The sum of charIndex and charCount is greater than the length of s. -or- byteIndex is greater than the length of bytes. |
ArgumentException | byteIndex is equal to the length of bytes. -or- No bytes have been stored into bytes. |
ArgumentException | An invalid high or low member of a surrogate pair encountered during encoding. |
bytes
Exception Type | Condition |
---|---|
ArgumentNullException | bytes is null. |
Alternatively, the Encoding.GetMaxCharCount method can be used to determine the maximum number of characters that will produced for a given number of bytes. A buffer of that size can then be reused for multiple conversions.
The Encoding.GetCharCount method generally uses less memory, whereas the Encoding.GetMaxCharCount method generally executes faster.
bytes
index
count
Exception Type | Condition |
---|---|
ArgumentNullException | bytes is null. |
ArgumentOutOfRangeException | index and count do not denote a valid range in bytes. |
bytes
Exception Type | Condition |
---|---|
ArgumentNullException | bytes is null. |
bytes
index
count
Exception Type | Condition |
---|---|
ArgumentNullException | bytes is null. |
ArgumentOutOfRangeException | index and count do not denote a valid range in the byte array. |
public override int GetChars( |
bytes
byteIndex
byteCount
chars
charIndex
Exception Type | Condition |
---|---|
ArgumentNullException | bytes or chars is null. |
ArgumentOutOfRangeException | byteIndex, byteCount, or charIndex is less than zero. -or- byteIndex plus byteCount is greater than the length of bytes. -or- charIndex is greater than the length of chars. |
ArgumentException | The length of chars is less than charCount plus charIndex. |
public override Decoder GetDecoder(); |
public virtual Encoder GetEncoder(); |
This default implementation returns an Encoder that forwards calls to Encoding.GetByteCount and Encoding.GetBytes to the corresponding methods of this encoding. Encodings that require state to be maintained between successive conversions can override this method and return an instance of an appropriate Encoder implementation.
public override int GetHashCode(); |
charCount
Exception Type | Condition |
---|---|
ArgumentOutOfRangeException | charCount is less than zero. -or- Return value is greater than Int32.MaxValue. |
byteCount
public override byte[] GetPreamble(); |
Otherwise, if the constructor requested big-endian byte order mark support then a byte array whose elements contain hexadecimal 0xFE, 0xFF; or if the constructor requested little-endian byte order mark support then a byte array whose elements contain hexadecimal 0xFF, 0xFE.
Concatenate this return value to the beginning of a UTF-16 encoding if the constructor for this instance requested support for a byte order mark.
bytes
Exception Type | Condition |
---|---|
ArgumentNullException | The bytes parameter is null. |
private string ReadAuthor(Stream binary_file) { System.Text.Encoding encoding = System.Text.Encoding.UTF8; // Read string from binary file with UTF8 encoding byte[] buffer = new byte[30]; binary_file.Read(buffer, 0, 30); return encoding.GetString(buffer); }
bytes
index
count
Exception Type | Condition |
---|---|
ArgumentNullException | The bytes parameter is null. |
ArgumentOutOfRangeException | The index and count parameters do not denote a valid range in the byte array. |
private string ReadAuthor(Stream binary_file) { System.Text.Encoding encoding = System.Text.Encoding.UTF8; // Read string from binary file with UTF8 encoding byte[] buffer = new byte[30]; binary_file.Read(buffer, 0, 30); return encoding.GetString(buffer); }
public Type GetType(); |
protected object MemberwiseClone(); |
public virtual string ToString(); |