C# 用utf8字符替换内部字符串后无法写入rtf文件

C# 用utf8字符替换内部字符串后无法写入rtf文件,c#,rtf,C#,Rtf,我有一个rtf文件,其中我必须用一些特定于语言的字符(UTF8)替换一些文本。在替换之后,我尝试保存到一个新的rtf文件中,但要么字符设置不正确(奇怪的字符),要么文件与所有rtf原始代码和所有格式一起保存。 这是我的密码: var fs = new FileStream(@"F:\projects\projects\RtfEditor\Test.rtf", FileMode.Open, FileAccess.Read); //reads the file in a byte[] var sb

我有一个rtf文件,其中我必须用一些特定于语言的字符(UTF8)替换一些文本。在替换之后,我尝试保存到一个新的rtf文件中,但要么字符设置不正确(奇怪的字符),要么文件与所有rtf原始代码和所有格式一起保存。 这是我的密码:

var fs = new FileStream(@"F:\projects\projects\RtfEditor\Test.rtf", FileMode.Open, FileAccess.Read);
//reads the file in a byte[]
var sb = FileWorker.ReadToEnd(fs);
var enc = Encoding.GetEncoding(1250);
//var enc = Encoding.UTF8;
var sbs = enc.GetString(sb);
var sbsNew = sbs.Replace("#test/#", "ă î â șșțț");
//first writting aproach
var fsw = new FileStream(@"F:\projects\projects\RtfEditor\diac.rtf", FileMode.Create, FileAccess.Write);                                     
fsw.Write(enc.GetBytes(sbsNew), 0, enc.GetBytes(sbsNew).Length);
fsw.Flush();
fsw.Close();
在本方案中,结果文件是正确的,但字符“șțț”显示为“?”


在本方案中,结果文件为rtf文件,但所有rtf原始代码和格式以及特殊字符均正确保存(正确显示,不再显示???)

rtf文件只能直接包含7位字符。其他一切都需要编码到转义序列中。更多详细信息请参见,例如:

请不要重复问题标题中的标签。
//second writing aproach
using (StreamWriter sw = new StreamWriter(fsw, Encoding.UTF8))
{
    sw.Write(sbsNew);
    sw.Flush();
}