System::Text::UnicodeEncoding Class Reference

Inherits System::Text::ICUEncoding.

Public Types

enum  : int { UNICODE_CODE_PAGE = 1200, BIG_UNICODE_CODE_PAGE = 1201 }
 
- Public Types inherited from System::Text::ICUEncoding
typedef Encoding Base
 RTTI. More...
 
- Public Types inherited from System::Text::Encoding
typedef System::SharedPtr< EncodingPtr
 Pointer type. More...
 
- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
typedef System::Details::SharedMembersType shared_members_type
 structure to keep list of shared pointers contained in object. More...
 

Public Member Functions

 UnicodeEncoding ()
 Constructor. More...
 
 UnicodeEncoding (bool bigEndian, bool byteOrderMark)
 
 UnicodeEncoding (bool bigEndian, bool byteOrderMark, bool throwOnInvalidBytes)
 
virtual int GetHashCode () const override
 
virtual bool Equals (ptr obj) override
 
ArrayPtr< uint8_t > GetPreamble () override
 
int GetMaxCharCount (int byteCount) override
 
int GetMaxByteCount (int charCount) override
 
bool operator== (const UnicodeEncoding &) const
 
virtual int get_CodePage () override
 
virtual String get_WebName () override
 
System::SharedPtr< System::ObjectClone () override
 
- Public Member Functions inherited from System::Text::ICUEncoding
 ICUEncoding (const String &name, int codepage)
 
virtual ~ICUEncoding ()
 Destructor. More...
 
bool operator== (const ICUEncoding &other) const
 
virtual String get_EncodingName () override
 
virtual String get_HeaderName () override
 
virtual bool get_IsBrowserDisplay () override
 Checks whether encoding can be used in browser to display content. Not implemented. More...
 
virtual bool get_IsBrowserSave () override
 Checks whether encoding can be used in browser to save content. Not implemented. More...
 
virtual bool get_IsMailNewsDisplay () override
 Checks whether encoding can be used in mail client to display content. Not implemented. More...
 
virtual bool get_IsMailNewsSave () override
 Checks whether encoding can be used in mail client to save content. Not implemented. More...
 
virtual bool get_IsReadOnly () override
 
virtual bool get_IsSingleByte () override
 
virtual int get_WindowsCodePage () override
 
virtual int GetByteCount (const char_t *chars, int count) override
 
virtual int GetByteCount (const ArrayPtr< char_t > &chars) override
 
virtual int GetByteCount (const ArrayPtr< char_t > &chars, int index, int count) override
 
virtual int GetByteCount (const String &s) override
 
virtual int GetBytes (const char_t *chars, int charCount, uint8_t *bytes, int byteCount) override
 
virtual ArrayPtr< uint8_t > GetBytes (const ArrayPtr< char_t > &chars) override
 
virtual ArrayPtr< uint8_t > GetBytes (const ArrayPtr< char_t > &chars, int index, int count) override
 
virtual int GetBytes (const ArrayPtr< char_t > &chars, int charIndex, int charCount, const ArrayPtr< uint8_t > &bytes, int byteIndex) override
 
virtual ArrayPtr< uint8_t > GetBytes (const String &s) override
 
virtual int GetBytes (const String &s, int charIndex, int charCount, const ArrayPtr< uint8_t > &bytes, int byteIndex) override
 
virtual int GetCharCount (const uint8_t *bytes, int count) override
 
virtual int GetCharCount (const ArrayPtr< uint8_t > &bytes) override
 
virtual int GetCharCount (const ArrayPtr< uint8_t > &bytes, int index, int count) override
 
virtual int GetChars (const uint8_t *bytes, int byteCount, char_t *chars, int charCount) override
 
virtual ArrayPtr< char_t > GetChars (const ArrayPtr< uint8_t > &bytes) override
 
virtual ArrayPtr< char_t > GetChars (const ArrayPtr< uint8_t > &bytes, int index, int count) override
 
virtual int GetChars (const ArrayPtr< uint8_t > &bytes, int byteIndex, int byteCount, const ArrayPtr< char_t > &chars, int charIndex) override
 
virtual DecoderPtr GetDecoder () override
 
virtual EncoderPtr GetEncoder () override
 
virtual String GetString (uint8_t *bytes, int byteCount) override
 
virtual String GetString (const ArrayPtr< uint8_t > &bytes) override
 
virtual String GetString (const ArrayPtr< uint8_t > &bytes, int index, int count) override
 
void SetFromUnicodeContext (const UChar *context) const
 
void SetToUnicodeContext (const uint8_t *context) const
 
const UChar * GetFromUnicodeContext () const
 
const uint8_t * GetToUnicodeContext () const
 
- Public Member Functions inherited from System::Text::Encoding
virtual String get_BodyName ()
 
virtual DecoderFallbackPtr get_DecoderFallback () const
 
virtual void set_DecoderFallback (const DecoderFallbackPtr value)
 
virtual const EncoderFallbackPtr get_EncoderFallback () const
 
virtual void set_EncoderFallback (const EncoderFallbackPtr value)
 
- Public Member Functions inherited from System::Object
 Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ~Object ()
 Destroys object. Frees all internal data structures. More...
 
 Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared refernce counter. More...
 
void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual String ToString () ASPOSE_CONST
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual void SetTemplateWeakPtr (unsigned int argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 
template<>
bool Equals (double const &objA, double const &objB)
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 

Additional Inherited Members

- Static Public Member Functions inherited from System::Text::Encoding
static ArrayPtr< uint8_t > Convert (const EncodingPtr &srcEncoding, const EncodingPtr &dstEncoding, const ArrayPtr< uint8_t > &bytes)
 
static ArrayPtr< uint8_t > Convert (const EncodingPtr &srcEncoding, const EncodingPtr &dstEncoding, const ArrayPtr< uint8_t > &bytes, int index, int count)
 
static EncodingPtr get_ASCII ()
 
static EncodingPtr get_BigEndianUnicode ()
 
static EncodingPtr get_Unicode ()
 
static EncodingPtr get_UTF8 ()
 
static EncodingPtr get_UTF8Unmarked ()
 
static EncodingPtr get_UTF32 ()
 
static EncodingPtr get_BigEndianUTF32 ()
 
static EncodingPtr get_UTF7 ()
 
static EncodingPtr GetEncoding (const String &name)
 
static EncodingPtr GetEncoding (int codepage)
 
static EncodingPtr GetEncoding (int codepage, const EncoderFallbackPtr &encoderFallback, const DecoderFallbackPtr &decoderFallback)
 
static EncodingPtr GetEncoding (const String &name, const EncoderFallbackPtr &encoderFallback, const DecoderFallbackPtr &decoderFallback)
 
static EncodingPtr get_Default ()
 
static System::ArrayPtr< System::SharedPtr< EncodingInfo > > GetEncodings ()
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Impleemnts C# typeof(System.Object) construct. More...
 
- Protected Member Functions inherited from System::Text::Encoding
 Encoding (int codePage_)
 
void SetDefaultFallbacks ()
 Sets encoding and decoding fallbacks to default. More...
 
- Protected Attributes inherited from System::Text::Encoding
int codePage
 Codepage number. More...
 

Detailed Description

Unicode encoding. Objects of this class should only be allocated using System::MakeObject() function. Never create instance of this type on stack or using operator new, as it will result in runtime errors and/or assertion faults. Always wrap this class into System::SmartPtr pointer and use this pointer to pass it to functions as argument.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum : int
Enumerator
UNICODE_CODE_PAGE 

Little endian codepage number.

BIG_UNICODE_CODE_PAGE 

Big endian codepage number.

Constructor & Destructor Documentation

◆ UnicodeEncoding() [1/3]

System::Text::UnicodeEncoding::UnicodeEncoding ( )

Constructor.

◆ UnicodeEncoding() [2/3]

System::Text::UnicodeEncoding::UnicodeEncoding ( bool  bigEndian,
bool  byteOrderMark 
)

Constructor.

Parameters
bigEndianIf true, use big endian, otherwise use little endian.
byteOrderMarkIf true, provide BOM.

◆ UnicodeEncoding() [3/3]

System::Text::UnicodeEncoding::UnicodeEncoding ( bool  bigEndian,
bool  byteOrderMark,
bool  throwOnInvalidBytes 
)

Constructor.

Parameters
bigEndianIf true, use big endian, otherwise use little endian.
byteOrderMarkIf true, provide BOM.
throwOnInvalidBytesIf true, throw on invalid bytes, otherwise skip them.

Member Function Documentation

◆ Clone()

System::SharedPtr<System::Object> System::Text::UnicodeEncoding::Clone ( )
overridevirtual

Clones encoding object.

Returns
Encoding object clone.

Reimplemented from System::Text::Encoding.

◆ Equals()

virtual bool System::Text::UnicodeEncoding::Equals ( ptr  obj)
overridevirtual

Compares encodings.

Parameters
objObject to compare to.
Returns
True if both objects are of same encoding, false otherwise.

Reimplemented from System::Text::ICUEncoding.

◆ get_CodePage()

virtual int System::Text::UnicodeEncoding::get_CodePage ( )
inlineoverridevirtual

Gets Windows codepage ID.

Returns
Codepage ID.

Reimplemented from System::Text::ICUEncoding.

◆ get_WebName()

virtual String System::Text::UnicodeEncoding::get_WebName ( )
overridevirtual

Gets IANA-compatible encoding name.

Returns
Name of encoding.

Reimplemented from System::Text::Encoding.

◆ GetHashCode()

virtual int System::Text::UnicodeEncoding::GetHashCode ( ) const
overridevirtual

Hashes encoding.

Returns
Hash code.

Reimplemented from System::Text::Encoding.

◆ GetMaxByteCount()

int System::Text::UnicodeEncoding::GetMaxByteCount ( int  charCount)
overridevirtual

Get the maximum number of bytes needed to encode a specified number of characters.

Parameters
charCountNumber of characters to encode.
Returns
Number of bytes sufficient to encode any string of given character length.

Reimplemented from System::Text::ICUEncoding.

◆ GetMaxCharCount()

int System::Text::UnicodeEncoding::GetMaxCharCount ( int  byteCount)
overridevirtual

Get the maximum number of characters needed to decode a specified number of bytes.

Parameters
byteCountNumber of bytes to decode.
Returns
Number of bytes sufficient to decode any string of given character length.

Reimplemented from System::Text::ICUEncoding.

◆ GetPreamble()

ArrayPtr<uint8_t> System::Text::UnicodeEncoding::GetPreamble ( )
overridevirtual

Returns a sequence of bytes that denotes the encoding (e. g. BOM).

Returns
Bytes sequence preamble.

Reimplemented from System::Text::ICUEncoding.

◆ operator==()

bool System::Text::UnicodeEncoding::operator== ( const UnicodeEncoding ) const

Compares encodings by codepages and flags.

Returns
True if codepages and flags match, false otherwise.