public static unsafe string ReadString(PmxTextEncoding textEncoding, byte *pointer, out byte *nextPointer) { var len = *((int *)pointer); var str = GetEncoding(textEncoding).GetString(pointer + sizeof(int), len); nextPointer = pointer + sizeof(int) + len; return(str); }
private static Encoding GetEncoding(PmxTextEncoding textEncoding) { switch (textEncoding) { case PmxTextEncoding.UTF16: return(Encoding.Unicode); case PmxTextEncoding.UTF8: return(Encoding.UTF8); default: throw new ArgumentOutOfRangeException(nameof(textEncoding), textEncoding, null); } }