0
我有一个rtf文件,其中必须使用某些特定语言字符(UTF8)进行文本替换。替换后,我尝试保存到一个新的RTF文件,但不是字符设置不正确(奇怪的字符)或文件与所有rtf原始代码和所有格式保存。 这里是我的代码:使用utf8字符替换内部字符串后无法写入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();
在这种形式给出,结果文件是正确的,但字符“SSTT”显示为“????”。
//second writing aproach
using (StreamWriter sw = new StreamWriter(fsw, Encoding.UTF8))
{
sw.Write(sbsNew);
sw.Flush();
}
在这种形式给出,结果文件是RTF文件,但所有的rtf原始代码和格式和特殊字符被保存权(SSTT出现correcty,没有更多????)
请不要在问题标题中重复标记。 – 2013-02-22 20:29:23