C# RichTextBox中替换乱码,该怎么解决呢 ?

言多必失 2012-07-01 08:10:39
RichTextBox打开RTF内容, 比如现在要把 #Name# 替换成 "武汉大学",#Name# 字体有颜色的,就是Word中编辑的了。

替换后乱码,我开始以为是编码问题,我写了个测试还是不行,要替换Rtf 的,因为这样能保留样式,要是用richTextBox1.Text的话,就是变的特别难看。求指点下。

代码如下


int i = 0;
private void button4_Click(object sender, EventArgs e)
{
LoadData();//重新打开Rtf

string text = "武汉大学";
string code = "";
System.Text.Encoding gb2312 = System.Text.Encoding.GetEncoding("gb2312");
byte[] gb = gb2312.GetBytes(text);
switch (i % 10)
{
case 0:
code = Encoding.Default.GetString(gb);
break;
case 1:
code = Encoding.ASCII.GetString(gb);
break;
case 2:
code = Encoding.Unicode.GetString(gb);
break;
case 3:
code = Encoding.UTF32.GetString(gb);
break;
case 4:
code = Encoding.UTF7.GetString(gb);
break;
case 5:
code = Encoding.UTF8.GetString(gb);
break;
case 6:
code = Encoding.Unicode.GetString(gb);
break;
case 7:
code = System.Text.Encoding.GetEncoding("gb2312").GetString(gb); ;

break;
default:
code = Encoding.BigEndianUnicode.GetString(gb);
break;
}
i++;
this.Text = i.ToString();
richTextBox1.Rtf = richTextBox1.Rtf.Replace("#Name#", code);
}
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
言多必失 2012-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
如果只是颜色的话,用Text替换后,再设置颜色还是可以的
[/Quote]

不行的,要是被替换的文字样式 改了也就算了, 用文本会把整个Wrod的样式给替换了。
杨友山 2012-07-02
  • 打赏
  • 举报
回复
如果没什么特殊要求,你可以把richtextbox换成browser控件。
参考
EnForGrass 2012-07-01
  • 打赏
  • 举报
回复
如果只是颜色的话,用Text替换后,再设置颜色还是可以的

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧