/// <summary> /// Write specific string to specific MemoryStream /// </summary> /// <param name="Data">MemoryStream to write text to</param> /// <param name="Text">Text to write in MemoryStream</param> /// <param name="TEncoding">TextEncoding use for text</param> /// <param name="AddNullCharacter">indicate if need to add null characters</param> protected void WriteText(MemoryStream Data, string Text, TextEncodings TEncoding, bool AddNullCharacter) { byte[] Buf, BufTemp; BufTemp = FileStreamEx.GetEncoding(TEncoding).GetBytes(Text); if (TEncoding == TextEncodings.UTF_16) { Buf = new byte[BufTemp.Length + 2]; Buf[0] = 0xFF; Buf[1] = 0xFE; for (int i = 0; i < BufTemp.Length; i++) { Buf[i + 2] = BufTemp[i]; } } else if (TEncoding == TextEncodings.UTF_16BE) { Buf = new byte[BufTemp.Length + 2]; Buf[0] = 0xFE; Buf[1] = 0xFF; for (int i = 0; i < BufTemp.Length; i++) { Buf[i + 2] = BufTemp[i]; } } else if (TEncoding == TextEncodings.UTF8) { Buf = new byte[BufTemp.Length + 3]; // EF BB BF Buf[0] = 0xEF; Buf[1] = 0xBB; Buf[2] = 0xBF; for (int i = 0; i < BufTemp.Length; i++) { Buf[i + 3] = BufTemp[i]; } } else { Buf = new byte[BufTemp.Length]; Buf = BufTemp; } Data.Write(Buf, 0, Buf.Length); if (AddNullCharacter) { Data.WriteByte(0); if (TEncoding == TextEncodings.UTF_16 || TEncoding == TextEncodings.UTF_16BE) { Data.WriteByte(0); } } }
/// <summary> /// Write specific string to specific MemoryStream /// </summary> /// <param name="Data">MemoryStream to write text to</param> /// <param name="Text">Text to write in MemoryStream</param> /// <param name="TEncoding">TextEncoding use for text</param> /// <param name="AddNullCharacter">indicate if need to add null characters</param> protected void WriteText(MemoryStream Data, string Text, TextEncodings TEncoding, bool AddNullCharacter) { byte[] Buf; Buf = FileStreamEx.GetEncoding(TEncoding).GetBytes(Text); Data.Write(Buf, 0, Buf.Length); if (AddNullCharacter) { Data.WriteByte(0); if (TEncoding == TextEncodings.UTF_16 || TEncoding == TextEncodings.UTF_16BE) { Data.WriteByte(0); } } }