public string ReadNullTerminatedUTF8() { var sb = new List<byte>(); while (true) { var b = Reader.ReadByte(); if (b == 0) break; sb.Add(b); } return Encoding.UTF8.GetString(sb.ToArray()); }