Exemple #1
0
const std::string &LString::toUtf8() const {
    if (isEmpty()) return sNullStdString;
    if (mData->mUtf8String) return *mData->mUtf8String;

    std::string *utf8 = new std::string(mData->mSize * 4, '\0');
    const LChar* fromNext;
    uint8_t* toNext;
    bool conversionValid = ucs4ToUtf8(cbegin(), cend(), fromNext, (uint8_t*)&(*utf8)[0], (uint8_t*)&(*utf8)[utf8->size()], toNext);
    assert(conversionValid);
    utf8->resize((char*)toNext - &(*utf8)[0]);
    mData->mUtf8String = utf8;
    return *mData->mUtf8String;
}
Exemple #2
0
vector<char>
ucs4_to_utf8(char_type const * ucs4str, size_t ls)
{
	return iconv_convert<char>(ucs4ToUtf8(), ucs4str, ls);
}
Exemple #3
0
vector<char>
ucs4_to_utf8(char_type c)
{
	return iconv_convert<char>(ucs4ToUtf8(), &c, 1);
}