#include "unicode/ucnv.h"
#include "unicode/utypes.h"
Go to the source code of this file.
Data Structures | |
| struct | UConverterFromUnicodeArgs |
| The structure for the fromUnicode callback function parameter. More... | |
| struct | UConverterToUnicodeArgs |
| The structure for the toUnicode callback function parameter. More... | |
Defines | |
| #define | UCNV_SUB_STOP_ON_ILLEGAL "i" |
| FROM_U, TO_U options for sub and skip callbacks ICU 1.8. | |
| #define | UCNV_SKIP_STOP_ON_ILLEGAL "i" |
| #define | UCNV_ESCAPE_ICU NULL |
| FROM_U_CALLBACK_ESCAPE options ICU 1.8. | |
| #define | UCNV_ESCAPE_JAVA "J" |
| #define | UCNV_ESCAPE_C "C" |
| #define | UCNV_ESCAPE_XML_DEC "D" |
| #define | UCNV_ESCAPE_XML_HEX "X" |
| #define | UCNV_ESCAPE_UNICODE "U" |
Enumerations | |
| enum | UConverterCallbackReason { UCNV_UNASSIGNED = 0, UCNV_ILLEGAL = 1, UCNV_IRREGULAR = 2, UCNV_RESET = 3, UCNV_CLOSE = 4 } |
| The process condition code to be used with the callbacks. More... | |
Functions | |
| U_CAPI void U_EXPORT2 | UCNV_FROM_U_CALLBACK_STOP (const void *context, UConverterFromUnicodeArgs *fromUArgs, const UChar *codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback STOPS at the ILLEGAL_SEQUENCE, returning the error code back to the caller immediately. | |
| U_CAPI void U_EXPORT2 | UCNV_TO_U_CALLBACK_STOP (const void *context, UConverterToUnicodeArgs *fromUArgs, const char *codeUnits, int32_t length, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback STOPS at the ILLEGAL_SEQUENCE, returning the error code back to the caller immediately. | |
| U_CAPI void U_EXPORT2 | UCNV_FROM_U_CALLBACK_SKIP (const void *context, UConverterFromUnicodeArgs *fromUArgs, const UChar *codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback skips any ILLEGAL_SEQUENCE, or skips only UNASSINGED_SEQUENCE depending on the context parameter simply ignoring those characters. | |
| U_CAPI void U_EXPORT2 | UCNV_FROM_U_CALLBACK_SUBSTITUTE (const void *context, UConverterFromUnicodeArgs *fromUArgs, const UChar *codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback will Substitute the ILLEGAL SEQUENCE, or UNASSIGNED_SEQUENCE depending on context parameter, with the current substitution string for the converter. | |
| U_CAPI void U_EXPORT2 | UCNV_FROM_U_CALLBACK_ESCAPE (const void *context, UConverterFromUnicodeArgs *fromUArgs, const UChar *codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback will Substitute the ILLEGAL SEQUENCE with the hexadecimal representation of the illegal codepoints. | |
| U_CAPI void U_EXPORT2 | UCNV_TO_U_CALLBACK_SKIP (const void *context, UConverterToUnicodeArgs *fromUArgs, const char *codeUnits, int32_t length, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback skips any ILLEGAL_SEQUENCE, or skips only UNASSINGED_SEQUENCE depending on the context parameter simply ignoring those characters. | |
| U_CAPI void U_EXPORT2 | UCNV_TO_U_CALLBACK_SUBSTITUTE (const void *context, UConverterToUnicodeArgs *fromUArgs, const char *codeUnits, int32_t length, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback will Substitute the ILLEGAL SEQUENCE,or UNASSIGNED_SEQUENCE depending on context parameter, with the Unicode substitution character, U+FFFD. | |
| U_CAPI void U_EXPORT2 | UCNV_TO_U_CALLBACK_ESCAPE (const void *context, UConverterToUnicodeArgs *fromUArgs, const char *codeUnits, int32_t length, UConverterCallbackReason reason, UErrorCode *err) |
| DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback will Substitute the ILLEGAL SEQUENCE with the hexadecimal representation of the illegal bytes (in the format XNN, e.g. | |
These Functions, although public, should NEVER be called directly, they should be used as parameters to the ucnv_setFromUCallback and ucnv_setToUCallback functions, to set the behaviour of a converter when it encounters ILLEGAL/UNMAPPED/INVALID sequences.
usage example: 'STOP' doesn't need any context, but newContext could be set to something other than 'NULL' if needed.
UErrorCode err = U_ZERO_ERROR;
UConverter* myConverter = ucnv_open("ibm-949", &err);
const void *newContext = NULL;
const void *oldContext;
UConverterFromUCallback oldAction;
if (U_SUCCESS(err))
{
ucnv_setFromUCallBack(myConverter,
UCNV_FROM_U_CALLBACK_STOP,
newContext,
&oldAction,
&oldContext,
&status);
}
The code above tells "myConverter" to stop when it encounters a ILLEGAL/TRUNCATED/INVALID sequences when it is used to convert from Unicode -> Codepage. The behavior from Codepage to Unicode is not changed.
|
|
The process condition code to be used with the callbacks.
|
|
||||||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback will Substitute the ILLEGAL SEQUENCE with the hexadecimal representation of the illegal codepoints.
|
|
||||||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback skips any ILLEGAL_SEQUENCE, or skips only UNASSINGED_SEQUENCE depending on the context parameter simply ignoring those characters.
|
|
||||||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback STOPS at the ILLEGAL_SEQUENCE, returning the error code back to the caller immediately.
|
|
||||||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This From Unicode callback will Substitute the ILLEGAL SEQUENCE, or UNASSIGNED_SEQUENCE depending on context parameter, with the current substitution string for the converter. This is the default callback.
|
|
||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback will Substitute the ILLEGAL SEQUENCE with the hexadecimal representation of the illegal bytes (in the format XNN, e.g. "%XFF%X0A%XC8%X03"). |
|
||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback skips any ILLEGAL_SEQUENCE, or skips only UNASSINGED_SEQUENCE depending on the context parameter simply ignoring those characters.
|
|
||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback STOPS at the ILLEGAL_SEQUENCE, returning the error code back to the caller immediately.
|
|
||||||||||||||||||||||||||||
|
DO NOT CALL THIS FUNCTION DIRECTLY! This To Unicode callback will Substitute the ILLEGAL SEQUENCE,or UNASSIGNED_SEQUENCE depending on context parameter, with the Unicode substitution character, U+FFFD.
|
1.3-rc3