# Poco

# class UTF16Encoding

Library: Foundation
Package: Text
Header: Poco/UTF16Encoding.h

## Description

UTF-16 text encoding, as defined in RFC 2781.

When converting from UTF-16 to Unicode, surrogates are reported as they are - in other words, surrogate pairs are not combined into one Unicode character. When converting from Unicode to UTF-16, however, characters outside the 16-bit range are converted into a low and high surrogate.

## Inheritance

Direct Base Classes: TextEncoding

All Base Classes: TextEncoding

## Member Summary

Member Functions: canonicalName, characterMap, convert, getByteOrder, isA, queryConvert, sequenceLength, setByteOrder

Inherited Functions: add, byName, canonicalName, characterMap, convert, find, global, isA, manager, queryConvert, remove, sequenceLength

## Enumerations

### ByteOrderType

BIG_ENDIAN_BYTE_ORDER

LITTLE_ENDIAN_BYTE_ORDER

NATIVE_BYTE_ORDER

## Constructors

### UTF16Encoding

UTF16Encoding(
ByteOrderType byteOrder = NATIVE_BYTE_ORDER
);

Creates and initializes the encoding for the given byte order.

### UTF16Encoding

UTF16Encoding(
int byteOrderMark
);

Creates and initializes the encoding for the byte-order indicated by the given byte-order mark, which is the Unicode character 0xFEFF.

## Destructor

### ~UTF16Encoding

~UTF16Encoding() override;

## Member Functions

### canonicalName

const char * canonicalName() const override;

See also: Poco::TextEncoding::canonicalName()

### characterMap

const CharacterMap & characterMap() const override;

See also: Poco::TextEncoding::characterMap()

### convert

int convert(
const unsigned char * bytes
) const override;

See also: Poco::TextEncoding::convert()

### convert

int convert(
int ch,
unsigned char * bytes,
int length
) const override;

See also: Poco::TextEncoding::convert()

### getByteOrder

ByteOrderType getByteOrder() const;

Returns the byte-order currently in use.

### isA

bool isA(
const std::string & encodingName
) const override;

See also: Poco::TextEncoding::isA()

### queryConvert

int queryConvert(
const unsigned char * bytes,
int length
) const override;

See also: Poco::TextEncoding::queryConvert()

### sequenceLength

int sequenceLength(
const unsigned char * bytes,
int length
) const override;

See also: Poco::TextEncoding::sequenceLength()

### setByteOrder

void setByteOrder(
ByteOrderType byteOrder
);

Sets the byte order.

### setByteOrder

void setByteOrder(
int byteOrderMark
);

Sets the byte order according to the given byte order mark, which is the Unicode character 0xFEFF.