Go to the documentation of this file.
56 #if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN)
72 #if !UCONFIG_NO_CONVERSION
77 #define UCNV_MAX_CONVERTER_NAME_LENGTH 60
79 #define UCNV_MAX_FULL_FILE_NAME_LENGTH (600+UCNV_MAX_CONVERTER_NAME_LENGTH)
167 UCNV_NUMBER_OF_SUPPORTED_CONVERTER_TYPES
202 const char *codeUnits,
225 const UChar* codeUnits,
238 #define UCNV_OPTION_SEP_CHAR ','
245 #define UCNV_OPTION_SEP_STRING ","
252 #define UCNV_VALUE_SEP_CHAR '='
259 #define UCNV_VALUE_SEP_STRING "="
269 #define UCNV_LOCALE_OPTION_STRING ",locale="
282 #define UCNV_VERSION_OPTION_STRING ",version="
294 #define UCNV_SWAP_LFNL_OPTION_STRING ",swaplfnl"
543 int32_t *pBufferSize,
546 #ifndef U_HIDE_DEPRECATED_API
554 #define U_CNV_SAFECLONE_BUFFERSIZE 1024
572 #if U_SHOW_CPLUSPLUS_API
635 const char *subChars,
814 #define UCNV_GET_MAX_BYTES_FOR_STRING(length, maxCharSize) \
815 (((int32_t)(length)+10)*(int32_t)(maxCharSize))
844 const char *displayLocale,
846 int32_t displayNameCapacity,
945 #ifndef U_HIDE_DEPRECATED_API
951 #endif // U_HIDE_DEPRECATED_API
1020 const void **context);
1036 const void **context);
1056 const void* newContext,
1058 const void** oldContext,
1079 const void *newContext,
1081 const void **oldContext,
1145 const char *targetLimit,
1146 const UChar ** source,
1147 const UChar * sourceLimit,
1214 const UChar *targetLimit,
1215 const char **source,
1216 const char *sourceLimit,
1250 char *dest, int32_t destCapacity,
1251 const UChar *src, int32_t srcLength,
1282 UChar *dest, int32_t destCapacity,
1283 const char *src, int32_t srcLength,
1358 const char **source,
1359 const char * sourceLimit,
1502 char **target,
const char *targetLimit,
1503 const char **source,
const char *sourceLimit,
1505 UChar **pivotTarget,
const UChar *pivotLimit,
1566 const char *fromConverterName,
1568 int32_t targetCapacity,
1570 int32_t sourceLength,
1621 char *target, int32_t targetCapacity,
1622 const char *source, int32_t sourceLength,
1673 char *target, int32_t targetCapacity,
1674 const char *source, int32_t sourceLength,
1794 const char *standard,
1876 #ifndef U_HIDE_SYSTEM_API
1989 int32_t sourceLength,
1990 int32_t *signatureLength,
UConverter * ucnv_safeClone(const UConverter *cnv, void *stackBuffer, int32_t *pBufferSize, UErrorCode *status)
Thread safe converter cloning operation.
const char * ucnv_getCanonicalName(const char *alias, const char *standard, UErrorCode *pErrorCode)
This function will return the internal canonical converter name of the tagged alias.
The structure for the toUnicode callback function parameter.
Number of UConverterUnicodeSet selectors.
const char * ucnv_getStandardName(const char *name, const char *standard, UErrorCode *pErrorCode)
Returns a standard name for a given converter name.
const char * ucnv_getName(const UConverter *converter, UErrorCode *err)
Gets the internal, canonical name of the converter (zero-terminated).
const char * ucnv_getAlias(const char *alias, uint16_t n, UErrorCode *pErrorCode)
Gives the name of the alias at given index of alias list.
const char * ucnv_getAvailableName(int32_t n)
Gets the canonical converter name of the specified converter from a list of all available converters ...
UConverterCallbackReason
The process condition code to be used with the callbacks.
void ucnv_setToUCallBack(UConverter *converter, UConverterToUCallback newAction, const void *newContext, UConverterToUCallback *oldAction, const void **oldContext, UErrorCode *err)
Changes the callback function used by the converter when an illegal or invalid sequence is found.
int8_t UBool
The ICU boolean type.
void ucnv_getInvalidChars(const UConverter *converter, char *errBytes, int8_t *len, UErrorCode *err)
Fills in the output parameter, errBytes, with the error characters from the last failing conversion.
C UConverter predefined error callbacks.
void ucnv_getAliases(const char *alias, const char **aliases, UErrorCode *pErrorCode)
Fill-up the list of alias names for the given alias.
UConverter * ucnv_openU(const UChar *name, UErrorCode *err)
Creates a Unicode converter with the names specified as unicode string.
void ucnv_getStarters(const UConverter *converter, UBool starters[256], UErrorCode *err)
Gets the "starter" (lead) bytes for converters of type MBCS.
UEnumeration * ucnv_openAllNames(UErrorCode *pErrorCode)
Returns a UEnumeration to enumerate all of the canonical converter names, as per the alias file,...
void ucnv_getSubstChars(const UConverter *converter, char *subChars, int8_t *len, UErrorCode *err)
Fills in the output parameter, subChars, with the substitution characters as multiple bytes.
void ucnv_fromUnicode(UConverter *converter, char **target, const char *targetLimit, const UChar **source, const UChar *sourceLimit, int32_t *offsets, UBool flush, UErrorCode *err)
Converts an array of unicode characters to an array of codepage characters.
int32_t ucnv_fromUCountPending(const UConverter *cnv, UErrorCode *status)
Returns the number of UChars held in the converter's internal state because more input is needed for ...
UConverterType ucnv_getType(const UConverter *converter)
Gets the type of the converter e.g.
int8_t ucnv_getMinCharSize(const UConverter *converter)
Returns the minimum byte length (per codepoint) for characters in this codepage.
uint16_t ucnv_countAliases(const char *alias, UErrorCode *pErrorCode)
Gives the number of aliases for a given converter or alias name.
int ucnv_compareNames(const char *name1, const char *name2)
Do a fuzzy compare of two converter/alias names.
int32_t ucnv_convert(const char *toConverterName, const char *fromConverterName, char *target, int32_t targetCapacity, const char *source, int32_t sourceLength, UErrorCode *pErrorCode)
Convert from one external charset to another.
const char * ucnv_getStandard(uint16_t n, UErrorCode *pErrorCode)
Gives the name of the standard at given index of standard list.
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
void ucnv_getInvalidUChars(const UConverter *converter, UChar *errUChars, int8_t *len, UErrorCode *err)
Fills in the output parameter, errChars, with the error characters from the last failing conversion.
void ucnv_toUnicode(UConverter *converter, UChar **target, const UChar *targetLimit, const char **source, const char *sourceLimit, int32_t *offsets, UBool flush, UErrorCode *err)
Converts a buffer of codepage bytes into an array of unicode UChars characters.
UConverter * ucnv_open(const char *converterName, UErrorCode *err)
Creates a UConverter object with the name of a coded character set specified as a C string.
void ucnv_setSubstString(UConverter *cnv, const UChar *s, int32_t length, UErrorCode *err)
Set a substitution string for converting from Unicode to a charset.
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
UConverter * ucnv_openCCSID(int32_t codepage, UConverterPlatform platform, UErrorCode *err)
Creates a UConverter object from a CCSID number and platform pair.
int32_t ucnv_fromAlgorithmic(UConverter *cnv, UConverterType algorithmicType, char *target, int32_t targetCapacity, const char *source, int32_t sourceLength, UErrorCode *pErrorCode)
Convert from one external charset to another.
int8_t ucnv_getMaxCharSize(const UConverter *converter)
Returns the maximum number of bytes that are output per UChar in conversion from Unicode using this c...
UEnumeration * ucnv_openStandardNames(const char *convName, const char *standard, UErrorCode *pErrorCode)
Return a new UEnumeration object for enumerating all the alias names for a given converter that are r...
The structure for the fromUnicode callback function parameter.
void ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, char **target, const char *targetLimit, const char **source, const char *sourceLimit, UChar *pivotStart, UChar **pivotSource, UChar **pivotTarget, const UChar *pivotLimit, UBool reset, UBool flush, UErrorCode *pErrorCode)
Convert from one external charset to another using two existing UConverters.
UChar32 ucnv_getNextUChar(UConverter *converter, const char **source, const char *sourceLimit, UErrorCode *err)
Convert a codepage buffer into Unicode one character at a time.
void ucnv_setSubstChars(UConverter *converter, const char *subChars, int8_t len, UErrorCode *err)
Sets the substitution chars when converting from unicode to a codepage.
uint16_t ucnv_countStandards(void)
Gives the number of standards associated to converter names.
UConverter * ucnv_openPackage(const char *packageName, const char *converterName, UErrorCode *err)
UConverterPlatform
Enum for specifying which platform a converter ID refers to.
void ucnv_close(UConverter *converter)
Deletes the unicode converter and releases resources associated with just this instance.
UBool ucnv_isFixedWidth(UConverter *cnv, UErrorCode *status)
Returns whether or not the charset of the converter has a fixed number of bytes per charset character...
UConverterType
Enum for specifying basic types of converters.
void(* UConverterToUCallback)(const void *context, UConverterToUnicodeArgs *args, const char *codeUnits, int32_t length, UConverterCallbackReason reason, UErrorCode *pErrorCode)
Function pointer for error callback in the codepage to unicode direction.
void ucnv_getToUCallBack(const UConverter *converter, UConverterToUCallback *action, const void **context)
Gets the current calback function used by the converter when an illegal or invalid codepage sequence ...
int32_t ucnv_flushCache(void)
Frees up memory occupied by unused, cached converter shared data.
void ucnv_fixFileSeparator(const UConverter *cnv, UChar *source, int32_t sourceLen)
Fixes the backslash character mismapping.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
int32_t ucnv_getCCSID(const UConverter *converter, UErrorCode *err)
Gets a codepage number associated with the converter.
const char * ucnv_getDefaultName(void)
Returns the current default converter name.
int32_t ucnv_toUCountPending(const UConverter *cnv, UErrorCode *status)
Returns the number of chars held in the converter's internal state because more input is needed for c...
void ucnv_setDefaultName(const char *name)
This function is not thread safe.
int32_t ucnv_countAvailable(void)
Returns the number of available converters, as per the alias file.
int32_t ucnv_toAlgorithmic(UConverterType algorithmicType, UConverter *cnv, char *target, int32_t targetCapacity, const char *source, int32_t sourceLength, UErrorCode *pErrorCode)
Convert from one external charset to another.
int32_t ucnv_toUChars(UConverter *cnv, UChar *dest, int32_t destCapacity, const char *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert the codepage string into a Unicode string using an existing UConverter.
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
void(* UConverterFromUCallback)(const void *context, UConverterFromUnicodeArgs *args, const UChar *codeUnits, int32_t length, UChar32 codePoint, UConverterCallbackReason reason, UErrorCode *pErrorCode)
Function pointer for error callback in the unicode to codepage direction.
UConverterUnicodeSet
Selectors for Unicode sets that can be returned by ucnv_getUnicodeSet().
void ucnv_resetFromUnicode(UConverter *converter)
Resets the from-Unicode part of a converter state to the default state.
UBool ucnv_usesFallback(const UConverter *cnv)
Determines if the converter uses fallback mappings or not.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
void ucnv_setFromUCallBack(UConverter *converter, UConverterFromUCallback newAction, const void *newContext, UConverterFromUCallback *oldAction, const void **oldContext, UErrorCode *err)
Changes the current callback function used by the converter when an illegal or invalid sequence is fo...
struct UConverter UConverter
UBool ucnv_isAmbiguous(const UConverter *cnv)
Determines if the converter contains ambiguous mappings of the same character or not.
UConverterPlatform ucnv_getPlatform(const UConverter *converter, UErrorCode *err)
Gets a codepage platform associated with the converter.
void ucnv_setFallback(UConverter *cnv, UBool usesFallback)
Sets the converter to use fallback mappings or not.
struct UEnumeration UEnumeration
structure representing an enumeration object instance
const char * ucnv_detectUnicodeSignature(const char *source, int32_t sourceLength, int32_t *signatureLength, UErrorCode *pErrorCode)
Detects Unicode signature byte sequences at the start of the byte stream and returns the charset name...
void ucnv_reset(UConverter *converter)
Resets the state of a converter to the default state.
void ucnv_resetToUnicode(UConverter *converter)
Resets the to-Unicode part of a converter state to the default state.
Select the set of roundtrippable Unicode code points.
Select the set of Unicode code points with roundtrip or fallback mappings.
struct USet USet
USet is the C API type corresponding to C++ class UnicodeSet.
int32_t ucnv_fromUChars(UConverter *cnv, char *dest, int32_t destCapacity, const UChar *src, int32_t srcLength, UErrorCode *pErrorCode)
Convert the Unicode string into a codepage string using an existing UConverter.
C API: String Enumeration.
void ucnv_getFromUCallBack(const UConverter *converter, UConverterFromUCallback *action, const void **context)
Gets the current callback function used by the converter when illegal or invalid Unicode sequence is ...
void ucnv_getUnicodeSet(const UConverter *cnv, USet *setFillIn, UConverterUnicodeSet whichSet, UErrorCode *pErrorCode)
Returns the set of Unicode code points that can be converted by an ICU converter.
int32_t ucnv_getDisplayName(const UConverter *converter, const char *displayLocale, UChar *displayName, int32_t displayNameCapacity, UErrorCode *err)
Returns the display name of the converter passed in based on the Locale passed in.