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); }
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; }