protected void WriteUTF8ResourceString(HtmlTextWriter output, int offset, int size, bool fAsciiOnly) { if (resource_data == null) { return; // throw? } if (output == null) { throw new ArgumentNullException("output"); } if (offset > resource_data.MaxOffset - size) { throw new ArgumentOutOfRangeException("size"); } //TODO: fAsciiOnly? IntPtr ptr = AddOffset(resource_data.Ptr, offset); HttpWriter writer = output.GetHttpWriter(); if (writer == null || writer.Response.ContentEncoding.CodePage != 65001) { byte [] bytes = new byte [size]; Marshal.Copy(ptr, bytes, 0, size); output.Write(Encoding.UTF8.GetString(bytes)); bytes = null; return; } writer.WriteUTF8Ptr(ptr, size); }
override void Render(HtmlTextWriter writer) { if (length == -1) { writer.Write(base.Text); return; } HttpWriter hw = writer.GetHttpWriter(); if (hw == null || hw.Response.ContentEncoding.CodePage != 65001) { byte [] bytes = new byte [length]; Marshal.Copy(ptr, bytes, 0, length); writer.Write(Encoding.UTF8.GetString(bytes)); bytes = null; return; } hw.WriteUTF8Ptr(ptr, length); }