private string ReadUTF8 ()
{
int size = ReadVariantSize ();
if (size == 0)
return String.Empty;
if (tmp_buffer.Length < size) {
int extlen = tmp_buffer.Length * 2;
tmp_buffer = Alloc (size < extlen ? extlen : size);
}
size = source.Read (tmp_buffer, 0, size);
return utf8enc.GetString (tmp_buffer, 0, size);
}