public void SaveSourceFileContent(SourceFile currentSourceFile, string text) { if (currentSourceFile.PrefixExists) { var prefixBytes = new byte[] { 255, 254 }; var prefix = Encoding.GetEncoding("utf-16LE").GetString(prefixBytes); text = string.Format("{0}{1}", prefix, text); } File.WriteAllText(currentSourceFile.FileName, UnsafeXml(text), Encoding.GetEncoding("utf-16LE")); }
public string GetSourceFileContent(SourceFile currentSourceFile) { var buffer = Encoding.GetEncoding("utf-16LE").GetBytes(File.ReadAllText(currentSourceFile.FileName)); using (var ms = new MemoryStream(buffer)) { using (var br = new BinaryReader(ms)) { var i = 0; while ((br.ReadInt16() == -257)) { i += 2; currentSourceFile.PrefixExists = true; } ms.Position -= 2; if (i > 0) return SafeXml(Encoding.GetEncoding("utf-16LE").GetString(br.ReadBytes(buffer.Length - i))); } } return SafeXml(Encoding.GetEncoding("utf-16LE").GetString(buffer)); }