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,
The structure for the toUnicode callback function parameter.
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.
UBool ucnv_usesFallback(const UConverter *cnv)
Determines if the converter uses fallback mappings or not.
void ucnv_setSubstString(UConverter *cnv, const UChar *s, int32_t length, UErrorCode *err)
Set a substitution string for converting from Unicode to a charset.
UConverterCallbackReason
The process condition code to be used with the callbacks.
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 ...
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...
int ucnv_compareNames(const char *name1, const char *name2)
Do a fuzzy compare of two converter/alias names.
const char * ucnv_getStandard(uint16_t n, UErrorCode *pErrorCode)
Gives the name of the standard at given index of standard list.
uint16_t ucnv_countStandards(void)
Gives the number of standards associated to converter names.
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...
void ucnv_resetFromUnicode(UConverter *converter)
Resets the from-Unicode part of a converter state to the default state.
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...
UConverterType ucnv_getType(const UConverter *converter)
Gets the type of the converter e.g.
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.
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 ...
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Number of UConverterUnicodeSet selectors.
int32_t ucnv_getCCSID(const UConverter *converter, UErrorCode *err)
Gets a codepage number associated with the converter.
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. ...
"Smart pointer" class, closes a UConverter via ucnv_close().
UConverter * ucnv_openCCSID(int32_t codepage, UConverterPlatform platform, UErrorCode *err)
Creates a UConverter object from a CCSID number and platform pair.
The structure for the fromUnicode callback function parameter.
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.
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.
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 ...
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.
UConverter * ucnv_openPackage(const char *packageName, const char *converterName, UErrorCode *err)
#define U_CDECL_BEGIN
This is used to begin a declaration of a library private ICU C API.
const char * ucnv_getAlias(const char *alias, uint16_t n, UErrorCode *pErrorCode)
Gives the name of the alias at given index of alias list.
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...
const char * ucnv_getAvailableName(int32_t n)
Gets the canonical converter name of the specified converter from a list of all available converters ...
int32_t ucnv_countAvailable(void)
Returns the number of available converters, as per the alias file.
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...
UBool ucnv_isAmbiguous(const UConverter *cnv)
Determines if the converter contains ambiguous mappings of the same character or not.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
"Smart pointer" definition macro, deletes objects via the closeFunction.
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().
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_getAliases(const char *alias, const char **aliases, UErrorCode *pErrorCode)
Fill-up the list of alias names for the given alias.
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
uint16_t ucnv_countAliases(const char *alias, UErrorCode *pErrorCode)
Gives the number of aliases for a given converter or alias name.
void ucnv_setDefaultName(const char *name)
This function is not thread safe.
int32_t UChar32
Define UChar32 as a type for single Unicode code points.
UConverterPlatform ucnv_getPlatform(const UConverter *converter, UErrorCode *err)
Gets a codepage platform associated with the converter.
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...
void ucnv_reset(UConverter *converter)
Resets the state of a converter to the default state.
void ucnv_setFallback(UConverter *cnv, UBool usesFallback)
Sets the converter to use fallback mappings or not.
UConverter * ucnv_safeClone(const UConverter *cnv, void *stackBuffer, int32_t *pBufferSize, UErrorCode *status)
Thread safe converter cloning operation.
Select the set of roundtrippable Unicode code points.
Select the set of Unicode code points with roundtrip or fallback mappings.
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...
uint16_t UChar
The base type for UTF-16 code units and pointers.
#define U_CDECL_END
This is used to end a declaration of a library private ICU C API.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
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...
const char * ucnv_getName(const UConverter *converter, UErrorCode *err)
Gets the internal, canonical name of the converter (zero-terminated).
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.
void ucnv_resetToUnicode(UConverter *converter)
Resets the to-Unicode part of a converter state to the default state.
struct UConverter UConverter
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
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.
void ucnv_setSubstChars(UConverter *converter, const char *subChars, int8_t len, UErrorCode *err)
Sets the substitution chars when converting from unicode to a codepage.
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.
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.
C API: String Enumeration.
void ucnv_close(UConverter *converter)
Deletes the unicode converter and releases resources associated with just this instance.
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.
UConverterType
Enum for specifying basic types of converters.
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...
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.
void ucnv_fixFileSeparator(const UConverter *cnv, UChar *source, int32_t sourceLen)
Fixes the backslash character mismapping.
C UConverter predefined error callbacks.
UChar32 ucnv_getNextUChar(UConverter *converter, const char **source, const char *sourceLimit, UErrorCode *err)
Convert a codepage buffer into Unicode one character at a time.
int32_t ucnv_flushCache(void)
Frees up memory occupied by unused, cached converter shared data.
const char * ucnv_getStandardName(const char *name, const char *standard, UErrorCode *pErrorCode)
Returns a standard name for a given converter name.
int8_t ucnv_getMinCharSize(const UConverter *converter)
Returns the minimum byte length (per codepoint) for characters in this codepage.
UConverterPlatform
Enum for specifying which platform a converter ID refers to.
const char * ucnv_getDefaultName(void)
Returns the current default converter name.
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...
UEnumeration * ucnv_openAllNames(UErrorCode *pErrorCode)
Returns a UEnumeration to enumerate all of the canonical converter names, as per the alias file...
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.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
int8_t UBool
The ICU boolean type.