75dac0c620
- cambio nome di alcuni include di base - aggiornamento prototipi.
50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2014-2014
|
|
//----------------------------------------------------------------------------
|
|
// File : EgtStringEncoder.h Data : 08.06.14 Versione : 1.5f3
|
|
// Contenuto : Insieme di funzioni per codificare stringhe UTF-8.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 08.06.14 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EgtStringConverter.h"
|
|
#include "/EgtDev/Include/EgtNumCollection.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool inline
|
|
SetCodePoint( unsigned int nCode, std::string& sString)
|
|
{
|
|
const unsigned int MAX_UNICODE = 1114111 ;
|
|
if ( nCode > MAX_UNICODE)
|
|
return false ;
|
|
wchar_t wsVal [2] ;
|
|
wsVal[0] = nCode ;
|
|
wsVal[1] = L'\0' ;
|
|
sString = LPSTR( WtoA(( wsVal))) ;
|
|
return true ;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
bool inline
|
|
SetCodePoints( UINTVECTOR& vCode, std::string& sString)
|
|
{
|
|
sString.clear() ;
|
|
sString.reserve( vCode.size()) ;
|
|
bool bOk = true ;
|
|
for ( size_t i = 0 ; i < vCode.size() ; ++ i) {
|
|
std::string sTemp ;
|
|
if ( SetCodePoint( vCode[i], sTemp)) {
|
|
sString += sTemp ;
|
|
}
|
|
else
|
|
bOk = false ;
|
|
}
|
|
return bOk ;
|
|
}
|