这篇教程C++ ConvertUTF32ToUTF8函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中ConvertUTF32ToUTF8函数的典型用法代码示例。如果您正苦于以下问题:C++ ConvertUTF32ToUTF8函数的具体用法?C++ ConvertUTF32ToUTF8怎么用?C++ ConvertUTF32ToUTF8使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了ConvertUTF32ToUTF8函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: strchrconst char* TiXmlBase::GetEntity( const char* p, char* value, int* length, TiXmlEncoding encoding ){ // Presume an entity, and pull it out. TIXML_STRING ent; int i; *length = 0; if ( *(p+1) && *(p+1) == '#' && *(p+2) ) { unsigned long ucs = 0; ptrdiff_t delta; unsigned mult = 1; if ( *(p+2) == 'x' ) { // Hexadecimal. if ( !*(p+3) ) return nullptr; const char* q = p+3; q = strchr( q, ';' ); if ( !q || !*q ) return nullptr; delta = q-p; --q; while ( *q != 'x' ) { if ( *q >= '0' && *q <= '9' ) ucs += mult * (*q - '0'); else if ( *q >= 'a' && *q <= 'f' ) ucs += mult * (*q - 'a' + 10); else if ( *q >= 'A' && *q <= 'F' ) ucs += mult * (*q - 'A' + 10 ); else return nullptr; mult *= 16; --q; } } else { // Decimal. if ( !*(p+2) ) return nullptr; const char* q = p+2; q = strchr( q, ';' ); if ( !q || !*q ) return nullptr; delta = q-p; --q; while ( *q != '#' ) { if ( *q >= '0' && *q <= '9' ) ucs += mult * (*q - '0'); else return nullptr; mult *= 10; --q; } } if ( encoding == TIXML_ENCODING_UTF8 ) { // convert the UCS to UTF-8 ConvertUTF32ToUTF8( ucs, value, length ); } else { *value = static_cast<char>(ucs); *length = 1; } return p + delta + 1; } // Now try to match it. for( i=0; i<NUM_ENTITY; ++i ) { if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 ) { assert( strlen( entity[i].str ) == entity[i].strLength ); *value = entity[i].chr; *length = 1; return ( p + entity[i].strLength ); } } // So it wasn't an entity, its unrecognized, or something like that. *value = *p; // Don't put back the last one, since we return it! //*length = 1; // Leave unrecognized entities - this doesn't really work. // Just writes strange XML. return p+1;}
开发者ID:drwbns,项目名称:tpnew---latest-ogre_v2-1,代码行数:94,
示例2: strchrconst char* XMLUtil::GetCharacterRef( const char* p, char* value, int* length ){ // Presume an entity, and pull it out. *length = 0; if ( *(p+1) == '#' && *(p+2) ) { unsigned long ucs = 0; ptrdiff_t delta = 0; unsigned mult = 1; if ( *(p+2) == 'x' ) { // Hexadecimal. if ( !*(p+3) ) { return 0; } const char* q = p+3; q = strchr( q, ';' ); if ( !q || !*q ) { return 0; } delta = q-p; --q; while ( *q != 'x' ) { if ( *q >= '0' && *q <= '9' ) { ucs += mult * (*q - '0'); } else if ( *q >= 'a' && *q <= 'f' ) { ucs += mult * (*q - 'a' + 10); } else if ( *q >= 'A' && *q <= 'F' ) { ucs += mult * (*q - 'A' + 10 ); } else { return 0; } mult *= 16; --q; } } else { // Decimal. if ( !*(p+2) ) { return 0; } const char* q = p+2; q = strchr( q, ';' ); if ( !q || !*q ) { return 0; } delta = q-p; --q; while ( *q != '#' ) { if ( *q >= '0' && *q <= '9' ) { ucs += mult * (*q - '0'); } else { return 0; } mult *= 10; --q; } } // convert the UCS to UTF-8 ConvertUTF32ToUTF8( ucs, value, length ); return p + delta + 1; } return p+1;}
开发者ID:henriyl,项目名称:ZShadeSandboxOld,代码行数:76,
示例3: strchrconst char* TiXmlBase::GetEntity( const char* p, char* value, int* length ){ // Presume an entity, and pull it out. TIXML_STRING ent; int i; *length = 0; if ( *(p+1) && *(p+1) == '#' && *(p+2) ) { unsigned long ucs = 0; unsigned delta = 0; unsigned mult = 1; if ( *(p+2) == 'x' ) { // Hexadecimal. if ( !*(p+3) ) return 0; const char* q = p+3; q = strchr( q, ';' ); if ( !q || !*q ) return 0; delta = q-p; --q; while ( *q != 'x' ) { if ( *q >= '0' && *q <= '9' ) ucs += mult * (*q - '0'); else if ( *q >= 'a' && *q <= 'f' ) ucs += mult * (*q - 'a' + 10); else if ( *q >= 'A' && *q <= 'F' ) ucs += mult * (*q - 'A' + 10 ); else return 0; mult *= 16; --q; } } else { // Decimal. if ( !*(p+2) ) return 0; const char* q = p+2; q = strchr( q, ';' ); if ( !q || !*q ) return 0; delta = q-p; --q; while ( *q != '#' ) { if ( *q >= '0' && *q <= '9' ) ucs += mult * (*q - '0'); else return 0; mult *= 10; --q; } } // convert the UCS to UTF-8 ConvertUTF32ToUTF8( ucs, value, length ); return p + delta + 1; } // Now try to match it. for( i=0; i<NUM_ENTITY; ++i ) { if ( strncmp( entity[i].str, p, entity[i].strLength ) == 0 ) { assert( strlen( entity[i].str ) == entity[i].strLength ); *value = entity[i].chr; *length = 1; return ( p + entity[i].strLength ); } } // So it wasn't an entity, its unrecognized, or something like that. *value = *p; // Don't put back the last one, since we return it! return p+1;}
开发者ID:priyananda,项目名称:projects,代码行数:84,
示例4: uischrconst TIXML_CHAR* TiXmlBase::GetEntity( const TIXML_CHAR* p, TIXML_CHAR* value, int* length, TiXmlEncoding encoding ){ // Presume an entity, and pull it out. TIXML_STRING ent; int i; *length = 0; if ( *(p+1) && *(p+1) == _TIXML_L('#') && *(p+2) ) { unsigned long ucs = 0; ptrdiff_t delta = 0; unsigned mult = 1; if ( *(p+2) == _TIXML_L('x') ) { // Hexadecimal. if ( !*(p+3) ) return 0; const TIXML_CHAR* q = p+3; q = uischr( q, _TIXML_L(';') ); if ( !q || !*q ) return 0; delta = q-p; --q; while ( *q != _TIXML_L('x') ) { if ( *q >= _TIXML_L('0') && *q <= _TIXML_L('9') ) ucs += mult * (*q - _TIXML_L('0')); else if ( *q >= _TIXML_L('a') && *q <= _TIXML_L('f') ) ucs += mult * (*q - _TIXML_L('a') + 10); else if ( *q >= _TIXML_L('A') && *q <= _TIXML_L('F') ) ucs += mult * (*q - _TIXML_L('A') + 10 ); else return 0; mult *= 16; --q; } } else { // Decimal. if ( !*(p+2) ) return 0; const TIXML_CHAR* q = p+2; q = uischr( q, _TIXML_L(';') ); if ( !q || !*q ) return 0; delta = q-p; --q; while ( *q != _TIXML_L('#') ) { if ( *q >= _TIXML_L('0') && *q <= _TIXML_L('9') ) ucs += mult * (*q - _TIXML_L('0')); else return 0; mult *= 10; --q; } } if ( encoding == TIXML_ENCODING_UTF8 ) { // convert the UCS to UTF-8 ConvertUTF32ToUTF8( ucs, value, length ); } else { *value = (TIXML_CHAR)ucs; *length = 1; } return p + delta + 1; } // Now try to match it. for( i=0; i<NUM_ENTITY; ++i ) { if ( uisncmp( entity[i].str, p, entity[i].uislength ) == 0 ) { assert( uislen( entity[i].str ) == entity[i].uislength ); *value = entity[i].chr; *length = 1; return ( p + entity[i].uislength ); } } // So it wasn't an entity, its unrecognized, or something like that. *value = *p; // Don't put back the last one, since we return it! //*length = 1; // Leave unrecognized entities - this doesn't really work. // Just writes strange XML. return p+1;}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:94,
注:本文中的ConvertUTF32ToUTF8函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ ConvertUTF8ToWString函数代码示例 C++ ConvertToUnicode函数代码示例 |