您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ucnv_close函数代码示例

51自学网 2021-06-03 09:05:15
  C++
这篇教程C++ ucnv_close函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ucnv_close函数的典型用法代码示例。如果您正苦于以下问题:C++ ucnv_close函数的具体用法?C++ ucnv_close怎么用?C++ ucnv_close使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ucnv_close函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: main

extern intmain(int argc, const char *argv[]) {    UErrorCode errorCode=U_ZERO_ERROR;    // Note: Using a global variable for any object is not exactly thread-safe...    // You can change this call to e.g. ucnv_open("UTF-8", &errorCode) if you pipe    // the output to a file and look at it with a Unicode-capable editor.    // This will currently affect only the printUString() function, see the code above.    // printUnicodeString() could use this, too, by changing to an extract() overload    // that takes a UConverter argument.    cnv=ucnv_open(NULL, &errorCode);    if(U_FAILURE(errorCode)) {        fprintf(stderr, "error %s opening the default converter/n", u_errorName(errorCode));        return errorCode;    }    ucnv_setFromUCallBack(cnv, UCNV_FROM_U_CALLBACK_ESCAPE, UCNV_ESCAPE_C, NULL, NULL, &errorCode);    if(U_FAILURE(errorCode)) {        fprintf(stderr, "error %s setting the escape callback in the default converter/n", u_errorName(errorCode));        ucnv_close(cnv);        return errorCode;    }    demo_utf_h_macros();    demo_C_Unicode_strings();    demoCaseMapInC();    demoCaseMapInCPlusPlus();    demoUnicodeStringStorage();    demoUnicodeStringInit();    ucnv_close(cnv);    return 0;}
开发者ID:icu-project,项目名称:icu4c,代码行数:34,


示例2: ppb_char_set_utf16_to_char_set

char *ppb_char_set_utf16_to_char_set(PP_Instance instance, const uint16_t *utf16, uint32_t utf16_len,                               const char *output_char_set,                               enum PP_CharSet_ConversionError on_error, uint32_t *output_length){    // each character could take up to 4 bytes in UTF-8; with additional zero-terminator byte    const uint32_t output_buffer_length = (utf16_len + 1) * 4 + 1;    char *output = ppb_memory_mem_alloc(output_buffer_length);    if (!output) {        trace_error("%s, can't allocate memory, %u bytes/n", __func__, output_buffer_length);        goto err;    }    const char *charset = encoding_alias_get_canonical_name(output_char_set);    const UChar subst = '?';    UErrorCode st = U_ZERO_ERROR;    UConverter *u = ucnv_open(charset, &st);    if (!U_SUCCESS(st)) {        trace_error("%s, wrong charset %s/n", __func__, output_char_set);        goto err;    }    switch (on_error) {    default:    case PP_CHARSET_CONVERSIONERROR_FAIL:        st = U_ZERO_ERROR;        ucnv_setFromUCallBack(u, UCNV_FROM_U_CALLBACK_STOP, NULL, NULL, NULL, &st);        break;    case PP_CHARSET_CONVERSIONERROR_SKIP:        st = U_ZERO_ERROR;        ucnv_setFromUCallBack(u, UCNV_FROM_U_CALLBACK_SKIP, NULL, NULL, NULL, &st);        break;    case PP_CHARSET_CONVERSIONERROR_SUBSTITUTE:        st = U_ZERO_ERROR;        ucnv_setFromUCallBack(u, UCNV_FROM_U_CALLBACK_SUBSTITUTE, NULL, NULL, NULL, &st);        st = U_ZERO_ERROR;        ucnv_setSubstString(u, &subst, 1, &st);        break;    }    *output_length = ucnv_fromUChars(u, output, output_buffer_length, utf16, utf16_len, &st);    if (st != U_BUFFER_OVERFLOW_ERROR && !U_SUCCESS(st))        goto err;    ucnv_close(u);    return output;err:    *output_length = 0;    ppb_memory_mem_free(output);    if (u)        ucnv_close(u);    return NULL;}
开发者ID:Happy-Ferret,项目名称:freshplayerplugin,代码行数:60,


示例3: _charset_close

static void _charset_close(lml_charset_t *lc){    if ( lc->from )        ucnv_close(lc->from);    if ( lc->to )        ucnv_close(lc->to);}
开发者ID:Prelude-SIEM,项目名称:prelude-lml,代码行数:8,


示例4: ucnv_close

voidXeTeXFontMgr_FC::terminate(){	if (macRomanConv != NULL)		ucnv_close(macRomanConv);	if (utf16beConv != NULL)		ucnv_close(utf16beConv);	if (utf8Conv != NULL)		ucnv_close(utf8Conv);}
开发者ID:luigiScarso,项目名称:mflua,代码行数:10,


示例5: ucnv_close

Variant c_UConverter::t___destruct() {  if (m_src) {    ucnv_close(m_src);  }  if (m_dest) {    ucnv_close(m_dest);  }  return uninit_null();}
开发者ID:ChrisOHu,项目名称:hiphop-php,代码行数:10,


示例6: ucnv_close

status_tICUCategoryData::_GetConverter(UConverter*& converterOut){	// we use different converters per thread to avoid concurrent accesses	ICUThreadLocalStorageValue* tlsValue = NULL;	status_t result = ICUThreadLocalStorageValue::GetInstanceForKey(		fThreadLocalStorageKey, tlsValue);	if (result != B_OK)		return result;	if (tlsValue->converter != NULL) {		if (strcmp(tlsValue->charset, fGivenCharset) == 0) {			converterOut = tlsValue->converter;			return B_OK;		}		// charset no longer matches the converter, we need to dump it and		// create a new one		ucnv_close(tlsValue->converter);		tlsValue->converter = NULL;	}	// create a new converter for the current charset	UErrorCode icuStatus = U_ZERO_ERROR;	UConverter* icuConverter = ucnv_open(fGivenCharset, &icuStatus);	if (icuConverter == NULL)		return B_NAME_NOT_FOUND;	// setup the new converter to stop upon any errors	icuStatus = U_ZERO_ERROR;	ucnv_setToUCallBack(icuConverter, UCNV_TO_U_CALLBACK_STOP, NULL, NULL, NULL,		&icuStatus);	if (!U_SUCCESS(icuStatus)) {		ucnv_close(icuConverter);		return B_ERROR;	}	icuStatus = U_ZERO_ERROR;	ucnv_setFromUCallBack(icuConverter, UCNV_FROM_U_CALLBACK_STOP, NULL, NULL,		NULL, &icuStatus);	if (!U_SUCCESS(icuStatus)) {		ucnv_close(icuConverter);		return B_ERROR;	}	tlsValue->converter = icuConverter;	strlcpy(tlsValue->charset, fGivenCharset, sizeof(tlsValue->charset));	converterOut = icuConverter;	return B_OK;}
开发者ID:SummerSnail2014,项目名称:haiku,代码行数:51,


示例7: _HZOpen

U_CDECL_BEGINstatic void  U_CALLCONV_HZOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){    UConverter *gbConverter;    if(pArgs->onlyTestIsLoadable) {        ucnv_canCreateConverter("GBK", errorCode);  /* errorCode carries result */        return;    }    gbConverter = ucnv_open("GBK", errorCode);    if(U_FAILURE(*errorCode)) {        return;    }    cnv->toUnicodeStatus = 0;    cnv->fromUnicodeStatus= 0;    cnv->mode=0;    cnv->fromUChar32=0x0000;    cnv->extraInfo = uprv_calloc(1, sizeof(UConverterDataHZ));    if(cnv->extraInfo != NULL){        ((UConverterDataHZ*)cnv->extraInfo)->gbConverter = gbConverter;    }    else {        ucnv_close(gbConverter);        *errorCode = U_MEMORY_ALLOCATION_ERROR;        return;    }}
开发者ID:winlibs,项目名称:icu4c,代码行数:26,


示例8: Write

//------------------------------------------size_t CFS_Sqlite::WriteUTF8(const wchar* string, FSFILE *fp){	if (!string || !*string) return 0;	// if not unicode#ifndef UNICODE	return Write(string, 1, strlen(string), fp);#else	unsigned int inputLen = wstrlen(string);	unsigned char *target;	target = new unsigned char[inputLen*4+1]; // make buffer long enough	UErrorCode status = U_ZERO_ERROR;	int32_t     len;	//// set up the converter	UConverter *conv = ucnv_open("utf-8", &status);	assertd(U_SUCCESS(status)!=0, "Failed to open utf-8 converter!");	//// convert 	len = ucnv_fromUChars(conv, (char*)target, inputLen*4, string, -1, &status);	assertd(U_SUCCESS(status)!=0, "Failed to convert string to utf-8!");	//// write to file	size_t wrlen = Write(target, 1, len, fp);	//// close and clean	delete[] target;	ucnv_close(conv);	return wrlen;#endif}
开发者ID:k3a,项目名称:Panther3D-2,代码行数:34,


示例9: CSICU_charset_init

bool CSICU_charset_init(charset* cs,						const ASCII* charSetName){	UErrorCode status = U_ZERO_ERROR;	UConverter* conv = ucnv_open(charSetName, &status);	if (U_SUCCESS(status))	{		// charSetName comes from stack. Copy it.		ASCII* p = new ASCII[strlen(charSetName) + 1];		cs->charset_name = p;		strcpy(p, charSetName);		cs->charset_version = CHARSET_VERSION_1;		cs->charset_flags |= CHARSET_ASCII_BASED;		cs->charset_min_bytes_per_char = ucnv_getMinCharSize(conv);		cs->charset_max_bytes_per_char = ucnv_getMaxCharSize(conv);		cs->charset_fn_destroy = charset_destroy;		cs->charset_fn_well_formed = NULL;		const UChar unicodeSpace = 32;		BYTE* p2 = new BYTE[cs->charset_max_bytes_per_char];		cs->charset_space_character = p2;		cs->charset_space_length = ucnv_fromUChars(conv, reinterpret_cast<char*>(p2),			cs->charset_max_bytes_per_char, &unicodeSpace, 1, &status);		fb_assert(U_SUCCESS(status));		ucnv_close(conv);		CVICU_convert_init(cs);	}	return U_SUCCESS(status);}
开发者ID:AsylumCorp,项目名称:dsploit,代码行数:35,


示例10: mod_websocket_conv_init

mod_websocket_conv_t *mod_websocket_conv_init(const char *locale) {    mod_websocket_conv_t *cnv;    UErrorCode err = U_ZERO_ERROR;    if (!locale) {        return NULL;    }    cnv = (mod_websocket_conv_t *)malloc(sizeof(mod_websocket_conv_t));    if (!cnv) {        return NULL;    }    if (strcasecmp(MOD_WEBSOCKET_UTF8_STR, locale) == 0) {        cnv->cli = NULL;        cnv->srv = NULL;    } else {        cnv->cli = ucnv_open(MOD_WEBSOCKET_UTF8_STR, &err);        if (U_FAILURE(err)) {            free(cnv);            return NULL;        }        cnv->srv = ucnv_open(locale, &err);        if (U_FAILURE(err)) {            ucnv_close(cnv->cli);            free(cnv);            return NULL;        }    }    return cnv;}
开发者ID:Fomich,项目名称:mod_websocket,代码行数:30,


示例11: ucnv_open

char *aescstrdup(const UChar* unichars,int32_t length){    char *newString,*targetLimit,*target;    UConverterFromUCallback cb;    const void *p;    UErrorCode errorCode = U_ZERO_ERROR;#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY#   if U_PLATFORM == U_PF_OS390        static const char convName[] = "ibm-1047";#   else        static const char convName[] = "ibm-37";#   endif#else    static const char convName[] = "US-ASCII";#endif    UConverter* conv = ucnv_open(convName, &errorCode);    if(length==-1){        length = u_strlen( unichars);    }    newString = (char*)ctst_malloc ( sizeof(char) * 8 * (length +1));    target = newString;    targetLimit = newString+sizeof(char) * 8 * (length +1);    ucnv_setFromUCallBack(conv, UCNV_FROM_U_CALLBACK_ESCAPE, UCNV_ESCAPE_C, &cb, &p, &errorCode);    ucnv_fromUnicode(conv,&target,targetLimit, &unichars, (UChar*)(unichars+length),NULL,TRUE,&errorCode);    ucnv_close(conv);    *target = '/0';    return newString;}
开发者ID:icu-project,项目名称:icu4c,代码行数:27,


示例12: u_getDefaultConverter

U_CAPI UConverter* U_EXPORT2u_getDefaultConverter(UErrorCode *status){    UConverter *converter = NULL;        if (gDefaultConverter != NULL) {        umtx_lock(NULL);                /* need to check to make sure it wasn't taken out from under us */        if (gDefaultConverter != NULL) {            converter = gDefaultConverter;            gDefaultConverter = NULL;        }        umtx_unlock(NULL);    }    /* if the cache was empty, create a converter */    if(converter == NULL) {        converter = ucnv_open(NULL, status);        if(U_FAILURE(*status)) {            ucnv_close(converter);            converter = NULL;        }    }    return converter;}
开发者ID:Andproject,项目名称:platform_external_icu4c,代码行数:27,


示例13: getConverter

QString QIcuCodec::convertToUnicode(const char *chars, int length, QTextCodec::ConverterState *state) const{    UConverter *conv = getConverter(state);    QString string(length + 2, Qt::Uninitialized);    const char *end = chars + length;    int convertedChars = 0;    while (1) {        UChar *uc = (UChar *)string.data();        UChar *ucEnd = uc + string.length();        uc += convertedChars;        UErrorCode error = U_ZERO_ERROR;        ucnv_toUnicode(conv,                       &uc, ucEnd,                       &chars, end,                       0, false, &error);        if (!U_SUCCESS(error) && error != U_BUFFER_OVERFLOW_ERROR) {            qDebug() << "convertToUnicode failed:" << u_errorName(error);            break;        }        convertedChars = uc - (UChar *)string.data();        if (chars >= end)            break;        string.resize(string.length()*2);    }    string.resize(convertedChars);    if (!state)        ucnv_close(conv);    return string;}
开发者ID:3163504123,项目名称:phantomjs,代码行数:33,


示例14: CodeSet_IsEncodingSupported

BoolCodeSet_IsEncodingSupported(const char *name) // IN{   UConverter *cv;   UErrorCode uerr;   /*    * Fallback if necessary.    */   if (dontUseIcu) {      return CodeSetOld_IsEncodingSupported(name);   }   /*    * Try to open the encoding.    */   uerr = U_ZERO_ERROR;   cv = ucnv_open(name, &uerr);   if (cv) {      ucnv_close(cv);      return TRUE;   }   return FALSE;}
开发者ID:dontsueme,项目名称:vmware-view-open-client,代码行数:25,


示例15: ucbuf_autodetect

U_CAPI FileStream * U_EXPORT2ucbuf_autodetect(const char* fileName, const char** cp,UConverter** conv, int32_t* signatureLength,UErrorCode* error){    FileStream* in=NULL;    if(error==NULL || U_FAILURE(*error)){        return NULL;    }    if(conv==NULL || cp==NULL || fileName==NULL){        *error = U_ILLEGAL_ARGUMENT_ERROR;        return NULL;    }    /* open the file */    in= T_FileStream_open(fileName,"rb");        if(in == NULL){        *error=U_FILE_ACCESS_ERROR;        return NULL;    }    if(ucbuf_autodetect_fs(in,cp,conv,signatureLength,error)) {        return in;    } else {        ucnv_close(*conv);        *conv=NULL;        T_FileStream_close(in);        return NULL;    }}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:27,


示例16: convsample_12

UErrorCode convsample_12(){  printf("/n/n==============================================/n"         "Sample 12: C: simple sjis -> unicode conversion/n");  // **************************** START SAMPLE *******************  char source[] = { 0x63, 0x61, 0x74, (char)0x94, 0x4C, (char)0x82, 0x6E, (char)0x82, 0x6A, 0x00 };  UChar target[100];  UErrorCode status = U_ZERO_ERROR;  UConverter *conv;  int32_t     len;  // set up the converter  conv = ucnv_open("shift_jis", &status);  assert(U_SUCCESS(status));  // convert to Unicode  // Note: we can use strlen, we know it's an 8 bit null terminated codepage  target[6] = 0xFDCA;  len = ucnv_toUChars(conv, target, 100, source, strlen(source), &status);  U_ASSERT(status);  // close the converter  ucnv_close(conv);  // ***************************** END SAMPLE ********************    // Print it out  printBytes("src", source, strlen(source) );  printf("/n");  printUChars("targ", target, len);  return U_ZERO_ERROR;}
开发者ID:ACSOP,项目名称:android_external_icu4c,代码行数:35,


示例17: mod_websocket_conv_final

voidmod_websocket_conv_final(mod_websocket_conv_t *cnv) {    if (cnv) {        if (cnv->cli) {            ucnv_close(cnv->cli);            cnv->cli = NULL;        }        if (cnv->srv) {            ucnv_close(cnv->srv);            cnv->srv = NULL;        }        free(cnv);        cnv = NULL;    }    return;}
开发者ID:Fomich,项目名称:mod_websocket,代码行数:16,


示例18: convsample_02

UErrorCode convsample_02(){  printf("/n/n==============================================/n"         "Sample 02: C: simple Unicode -> koi8-r conversion/n");  // **************************** START SAMPLE *******************  // "cat<cat>OK"  UChar source[] = { 0x041C, 0x043E, 0x0441, 0x043A, 0x0432,                     0x0430, 0x0021, 0x0000 };  char target[100];  UErrorCode status = U_ZERO_ERROR;  UConverter *conv;  int32_t     len;  // set up the converter  conv = ucnv_open("koi8-r", &status);  assert(U_SUCCESS(status));  // convert to koi8-r  len = ucnv_fromUChars(conv, target, 100, source, -1, &status);  assert(U_SUCCESS(status));  // close the converter  ucnv_close(conv);  // ***************************** END SAMPLE ********************    // Print it out  printUChars("src", source);  printf("/n");  printBytes("targ", target, len);  return U_ZERO_ERROR;}
开发者ID:ACSOP,项目名称:android_external_icu4c,代码行数:35,


示例19: xh_encoder_uconv_destroy

static voidxh_encoder_uconv_destroy(UConverter *uconv){    if (uconv != NULL) {        ucnv_close(uconv);    }}
开发者ID:yoreek,项目名称:XML-Hash-XS,代码行数:7,


示例20: mm_func_destroy

static void mm_func_destroy(void *ptr){    mm_cipher_context_t *ctx = (mm_cipher_context_t *) ptr;    if (--ctx->ref_count == 0) {        ucnv_close(ctx->cnv);        sqlite3_free(ctx);    }}
开发者ID:zidonJ,项目名称:Git_OC,代码行数:8,


示例21: ucnv_close

void TextCodecICU::releaseICUConverter() const{    if (m_converterICU) {        if (cachedConverterICU)            ucnv_close(cachedConverterICU);        cachedConverterICU = m_converterICU;        m_converterICU = 0;    }}
开发者ID:acss,项目名称:owb-mirror,代码行数:9,


示例22: ucnv_open

int32_t CharsetMatch::getUChars(UChar *buf, int32_t cap, UErrorCode *status) const{    UConverter *conv = ucnv_open(getName(), status);    int32_t result = ucnv_toUChars(conv, buf, cap, (const char *) textIn->fRawInput, textIn->fRawLength, status);    ucnv_close(conv);    return result;}
开发者ID:00zhengfu00,项目名称:third_party,代码行数:9,


示例23: cachedConverterICU

void TextCodecICU::releaseICUConverter() const {  if (m_converterICU) {    UConverter*& cachedConverter = cachedConverterICU();    if (cachedConverter)      ucnv_close(cachedConverter);    cachedConverter = m_converterICU;    m_converterICU = 0;  }}
开发者ID:ollie314,项目名称:chromium,代码行数:9,


示例24: ucnv_close

void StreamingTextDecoderICU::releaseICUConverter(){    if (m_converterICU) {        if (cachedConverterICU != 0)            ucnv_close(cachedConverterICU);        cachedConverterICU = m_converterICU;        cachedConverterEncoding = m_encoding.encodingID();        m_converterICU = 0;    }}
开发者ID:oroisec,项目名称:ios,代码行数:10,


示例25: assert

/*----------------------------------------------------------------------------------------------	The class destructor.	Assumptions:		<text>	Exit conditions:		<text>	Parameters:		None----------------------------------------------------------------------------------------------*/UnicodeConverter::~UnicodeConverter(){	assert(!"necessary to explicitly delete sole instance");	if (m_converter != 0)		ucnv_close(m_converter);  // close the converter	if (s_instance == this)		s_instance = 0;}
开发者ID:agran147,项目名称:FieldWorks,代码行数:22,


示例26: _HZClose

static void  U_CALLCONV_HZClose(UConverter *cnv){    if(cnv->extraInfo != NULL) {        ucnv_close (((UConverterDataHZ *) (cnv->extraInfo))->gbConverter);        if(!cnv->isExtraLocal) {            uprv_free(cnv->extraInfo);        }        cnv->extraInfo = NULL;    }}
开发者ID:winlibs,项目名称:icu4c,代码行数:10,


示例27: readU32

librevenge::RVNGString libvisio::VSDMetaData::readCodePageString(librevenge::RVNGInputStream *input){  uint32_t size = readU32(input);  if (size > getRemainingLength(input))    size = getRemainingLength(input);  if (size == 0)    return librevenge::RVNGString();  std::vector<unsigned char> characters;  for (uint32_t i = 0; i < size; ++i)    characters.push_back(readU8(input));  uint32_t codepage = getCodePage();  librevenge::RVNGString string;  if (codepage == 65001)  {    // http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx    // says this is UTF-8.    characters.push_back(0);    string.append(reinterpret_cast<const char *>(characters.data()));  }  else  {    UErrorCode status = U_ZERO_ERROR;    UConverter *conv = nullptr;    switch (codepage)    {    case 1252:      // http://msdn.microsoft.com/en-us/goglobal/bb964654      conv = ucnv_open("windows-1252", &status);      break;    }    if (U_SUCCESS(status) && conv)    {      assert(!characters.empty());      const auto *src = (const char *)&characters[0];      const char *srcLimit = (const char *)src + characters.size();      while (src < srcLimit)      {        UChar32 ucs4Character = ucnv_getNextUChar(conv, &src, srcLimit, &status);        if (U_SUCCESS(status) && U_IS_UNICODE_CHAR(ucs4Character))          appendUCS4(string, ucs4Character);      }    }    if (conv)      ucnv_close(conv);  }  return string;}
开发者ID:LibreOffice,项目名称:libvisio,代码行数:55,


示例28: constructEventSsid

void constructEventSsid(char *eventstr){     char *pos = NULL;     char *tmp = NULL;     char ssid[BUF_SIZE] = {0};     char ssid_txt[BUF_SIZE] = {0};     char buf[BUF_SIZE] = {0};     bool isUTF8 = false, isCh = false;     UConverterType conType = UCNV_UTF8;     char dest[CONVERT_LINE_LEN] = {0};     UErrorCode err = U_ZERO_ERROR;     UConverter* pConverter = ucnv_open(CHARSET_CN, &err);     if (U_FAILURE(err)) {         ALOGE("ucnv_open error");         return;     }     tmp = strstr(eventstr, " SSID");     if (strlen(tmp) > 6 ) {         if(!strstr(tmp,"="))             sscanf(tmp + 7, "%[^/']", ssid);	else             sscanf(tmp + 6, "%s", ssid);         if (DBG)             ALOGD("%s, SSID = %s", __FUNCTION__, ssid);         ssid_decode(buf,BUF_SIZE,ssid);         isUTF8 = isUTF8String(buf,sizeof(buf));         isCh = false;         for (pos = buf; '/0' != *pos; pos++) {             if (0x80 == (*pos & 0x80)) {                 isCh = true;                 break;             }         }         if (!isUTF8 && isCh) {             ucnv_toAlgorithmic(conType, pConverter, dest, CONVERT_LINE_LEN,                             buf, strlen(buf), &err);             if (U_FAILURE(err)) {                 ALOGE("ucnv_toUChars error");                 goto EXIT;             }             ssid_encode(ssid_txt, BUF_SIZE, dest, strlen(dest));             if (!strstr(tmp,"="))                 snprintf(eventstr + (strlen(eventstr) - strlen(tmp)), strlen(eventstr), " SSID /'%s/'", ssid_txt);             else                 snprintf(eventstr + (strlen(eventstr) - strlen(tmp)), strlen(eventstr), " SSID=%s", ssid_txt);             if (DBG)                 ALOGD("%s, ssid_txt = %s, eventsrt = %s", __FUNCTION__, ssid_txt, eventstr);         }     }EXIT:     ucnv_close(pConverter);}
开发者ID:xuhaohunter,项目名称:docs,代码行数:55,


示例29: getResultsManually

static UBool *getResultsManually(const char** encodings, int32_t num_encodings,                   const char *utf8, int32_t length,                   const USet* excludedCodePoints, const UConverterUnicodeSet whichSet) {  UBool* resultsManually;  int32_t i;  resultsManually = (UBool*) uprv_malloc(gCountAvailable);  uprv_memset(resultsManually, 0, gCountAvailable);  for(i = 0 ; i < num_encodings ; i++) {    UErrorCode status = U_ZERO_ERROR;    /* get unicode set for that converter */    USet* set;    UConverter* test_converter;    UChar32 cp;    int32_t encIndex, offset;    set = uset_openEmpty();    test_converter = ucnv_open(encodings[i], &status);    ucnv_getUnicodeSet(test_converter, set,                       whichSet, &status);    if (excludedCodePoints != NULL) {      uset_addAll(set, excludedCodePoints);    }    uset_freeze(set);    offset = 0;    cp = 0;    encIndex = findIndex(encodings[i]);    /*     * The following is almost, but not entirely, the same as     * resultsManually[encIndex] =     *   (UBool)(uset_spanUTF8(set, utf8, length, USET_SPAN_SIMPLE) == length);     * They might be different if the set contains strings,     * or if the utf8 string contains an illegal sequence.     *     * The UConverterSelector does not currently handle strings that can be     * converted, and it treats an illegal sequence as convertible     * while uset_spanUTF8() treats it like U+FFFD which may not be convertible.     */    resultsManually[encIndex] = TRUE;    while(offset<length) {      U8_NEXT(utf8, offset, length, cp);      if (cp >= 0 && !uset_contains(set, cp)) {        resultsManually[encIndex] = FALSE;        break;      }    }    uset_close(set);    ucnv_close(test_converter);  }  return resultsManually;}
开发者ID:winlibs,项目名称:icu4c,代码行数:54,



注:本文中的ucnv_close函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ucnv_open函数代码示例
C++ ucln_i18n_registerCleanup函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。