예제 #1
0
char CObjectIStreamJson::ReadEncodedChar(
    EStringType type /*= eStringTypeVisible*/, bool* encoded /*=0*/)
{
    EEncoding enc_out( type == eStringTypeUTF8 ? eEncoding_UTF8 : m_StringEncoding);
    EEncoding enc_in(eEncoding_UTF8);

    if (enc_in != enc_out && enc_out != eEncoding_Unknown) {
        int c = ReadEscapedChar(encoded);
        TUnicodeSymbol chU = ReadUtf8Char(c);
        Uint1 ch = CStringUTF8::SymbolToChar( chU, enc_out);
        return ch & 0xFF;
    }
    return ReadEscapedChar(encoded);
}
예제 #2
0
	String^ LexerLine::Text::get()
	{
		if (_lineText == nullptr)
		{
			if (_codePage == SC_CP_UTF8)
			{
				StringBuilder^	sb = gcnew StringBuilder();
				const char*		pos = _lineStart;
				while (pos < _lineEnd)
				{
					sb->Append(ReadUtf8Char(&pos));
				}
				_lineText = sb->ToString();
			}
			else
			{
				_lineText = gcnew String(_lineStart, 0, _lineEnd - _lineStart);
			}
		}
		return _lineText;
	}