高分求教:如何在RichTextBox中显示下面的RTF内容

Alexandria 2005-08-24 10:44:51
RTF内容中包含中文,请注意是直接包含了中文。

{\rtf1\ansi\deff0{\fonttbl{\f0\froman Tms Rmn;}{\f1\fswiss Arial;}}{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;\red127\green0\blue0;\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\info{\creatim\yr1996\mo9\dy6\hr10\min22\sec23}{\version1}{\vern262367}}\paperw19281\paperh43558\margl0\margr10686\margt0\margb22907\deftab720\pard\ql\li0\fi0\ri3004{\f1\fs20\cf0\up0\dn0 \loch\af1 }{\f0\fs20\cf0\up0\dn0 \loch\af0 English words}{\f0\fs20\cf5\up0\dn0 \dbch\af0 在这里}{\par}\pard\ql\li0\fi0\ri3004}

因为中文是直接包含在RTF内容中的,我用了多种Encoding的方法还是显示为乱码。
...全文
183 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alexandria 2005-08-28
  • 打赏
  • 举报
回复
问题已解决,请看http://community.csdn.net/Expert/TopicView.asp?id=4227938
flyye_cs 2005-08-27
  • 打赏
  • 举报
回复
mark...

timiil 2005-08-26
  • 打赏
  • 举报
回复
能否先用程序判断,把直接中文的子字符串“解救”出来,然后替换,再显示?
JzeroBiao 2005-08-24
  • 打赏
  • 举报
回复
关注..
baby21st 2005-08-24
  • 打赏
  • 举报
回复
你的这段RTF格式的编码好像本身就是乱码
我在记事本中存为RTF格式
ansi\utf-8\unicode 都不正常
wentschau 2005-08-24
  • 打赏
  • 举报
回复
对于string中的每个char, 可以根据它的内码看看是不是ASCII字符,如果不是ascii字符,则寻找最大子串,然后对于这样的最大子串,进行转换

这种方法的一个缺点是,有可能会丢失中文的格式信息(其实是被内嵌字体覆盖掉,我没试过,也许这不是个问题)。一个解决案发是把转换后的string进行一些处理,播掉header和font信息,只留下相应中文的内码信息(rtf格式)
wentschau 2005-08-24
  • 打赏
  • 举报
回复
我的代码的前两行是把"在这里"转换成下面的rtf

{\rtf1\ansi\deff0{\fonttbl{\f0\fmodern\fprq6\fcharset134 \'cb\'ce\'cc\'e5;}}
\viewkind4\uc1\pard\lang2052\f0\fs20\'d4\'da\'d5\'e2\'c0\'ef\par
}

然后把它嵌入到原来的rtf中, 替换掉"在这里"
wentschau 2005-08-24
  • 打赏
  • 举报
回复
txtRich.Text = "在这里";
string abc = txtRich.Rtf;
txtRich.Rtf = @"{\rtf1\ansi\deff0{\fonttbl{\f0\froman Tms Rmn;}{\f1\fswiss Arial;}}{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;\red127\green0\blue0;\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\info{\creatim\yr1996\mo9\dy6\hr10\min22\sec23}{\version1}{\vern262367}}\paperw19281\paperh43558\margl0\margr10686\margt0\margb22907\deftab720\pard\ql\li0\fi0\ri3004{\f1\fs20\cf0\up0\dn0 \loch\af1 }{\f0\fs20\cf0\up0\dn0 \loch\af0 English words}{\f0\fs20\cf5\up0\dn0 \dbch\af0 " + abc + @"}{\par}\pard\ql\li0\fi0\ri3004}";
速马 2005-08-24
  • 打赏
  • 举报
回复
贴出相关代码吧

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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