#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.
|