Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

[Index] [Glossary] [Previous] [Next]



Location: utf.h
Link against: charconv.lib

Class CnvUtfConverter

CnvUtfConverter

Support

Supported from 5.1

Description

Converts text between Unicode (UCS-2) and the two Unicode transformation formats UTF-7 and UTF-8. There are no functions to convert directly between UTF-7 and UTF-8.

Objects of this class do not need to be created because all the member functions are static. The four functions are passed text in the second argument and output the resulting text in the first argument. Sixteen-bit descriptors are used to hold text encoded in UCS-2 (i.e. normal 16 bit Unicode), and eight-bit descriptors are used to hold text encoded in either of the transformation formats.

The conversion functions return the number of characters which were not converted because the output descriptor was not long enough to hold all of the converted text. This allows users of this class to perform partial conversions on an input descriptor — handling the case when the input descriptor is truncated mid way through a multi-byte character. The caller does not have to guess how big to make the output descriptor for a given input descriptor — they can simply do the conversion in a loop using a small output descriptor. The ability to handle truncated descriptors is particularly useful if the caller is receiving information in chunks from an external source.

Defined in CnvUtfConverter:
Anonymous, ConvertFromUnicodeToUtf7(), ConvertFromUnicodeToUtf8(), ConvertToUnicodeFromUtf7(), ConvertToUnicodeFromUtf8(), EErrorIllFormedInput, KStateDefault, TError


Conversion functions


ConvertFromUnicodeToUtf7()

static TInt ConvertFromUnicodeToUtf7(TDes8& aUtf7, const TDesC16& aUnicode, TBool aEncodeOptionalDirectCharactersInBase64);

Description

Converts Unicode text into UTF-7 encoding.

Parameters

TDes8& aUtf7

On return, contains the UTF-7 encoded output string.

const TDesC16& aUnicode

A UCS-2 encoded input string.

TBool aEncodeOptionalDirectCharactersInBase64

If ETrue then characters from UTF-7 set O (optional direct characters) are encoded in Modified Base64. If EFalse the characters are encoded directly, as their ASCII equivalents.

Return value

TInt

The number of unconverted characters left at the end of the input descriptor, or one of the error values defined in TError.


ConvertFromUnicodeToUtf8()

static TInt ConvertFromUnicodeToUtf8(TDes8& aUtf8, const TDesC16& aUnicode, TBool aGenerateJavaConformantUtf8=EFalse);

Support

Withdrawn in 6.0

Description

Converts Unicode text into UTF-8 encoding.

The variant of UTF-8 used internally by Java differs slightly from standard UTF-8. The TBool argument controls the UTF-8 variant generated by this function.

Parameters

TDes8& aUtf8

On return, contains the UTF-8 encoded output string.

const TDesC16& aUnicode

A UCS-2 encoded input string.

TBool aGenerateJavaConformantUtf8

EFalse for orthodox UTF-8. ETrue for Java UTF-8. The default is EFalse.

Return value

TInt

The number of unconverted characters left at the end of the input descriptor, or one of the error values defined in TError.


ConvertFromUnicodeToUtf8()

static TInt ConvertFromUnicodeToUtf8(TDes8& aUtf8, const TDesC16& aUnicode);

Support

Supported from 6.0

Description

Converts Unicode text into UTF-8 encoding.

Parameters

TDes8& aUtf8

On return, contains the UTF-8 encoded output string.

const TDesC16& aUnicode

The Unicode-encoded input string.

Return value

TInt

The number of unconverted characters left at the end of the input descriptor, or one of the error values defined in TError.


ConvertToUnicodeFromUtf7()

static TInt ConvertToUnicodeFromUtf7(TDes16& aUnicode, const TDesC8& aUtf7, TInt& aState);

Description

Converts text encoded using the Unicode transformation format UTF-7 into the Unicode UCS-2 character set.

If the conversion is achieved using a series of calls to this function, where each call starts off where the previous call reached in the input descriptor, the state of the conversion is stored. The initial value of the state variable should be set as KStateDefault when the conversion is started, and afterwards simply passed unchanged into each function call.

Parameters

TDes16& aUnicode

On return, contains the Unicode encoded output string.

const TDesC8& aUtf7

The UTF-7 encoded input string.

TInt& aState

For the first call of the function set to KStateDefault. For subsequent calls, pass in the variable unchanged.

Return value

TInt

The number of unconverted bytes left at the end of the input descriptor, or one of the error values defined in TError.


ConvertToUnicodeFromUtf8()

static TInt ConvertToUnicodeFromUtf8(TDes16& aUnicode, const TDesC8& aUtf8);

Description

Converts text encoded using the Unicode transformation format UTF-8 into the Unicode UCS-2 character set.

Parameters

TDes16& aUnicode

On return, contains the Unicode encoded output string.

const TDesC8& aUtf8

The UTF-8 encoded input string

Return value

TInt

The number of unconverted bytes left at the end of the input descriptor, or one of the error values defined in TError.

[Top]


Enumerations


Enum TError

TError

Description

Conversion error flags. At this stage there is only one error flag — others may be added in the future.

EErrorIllFormedInput

The input descriptor contains a single corrupt character. This might occur when the input descriptor only contains some of the bytes of a single multi-byte character.


Enum Anonymous

Anonymous

Description

Initial state for a piece-by-piece conversion of a UTF-8 string to Unicode.

KStateDefault

Initial value for the state argument in a set of related calls to ConvertToUnicode().