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的方法还是显示为乱码。

解决方案 »

  1.   

    楼主,我知道  :)
    由于你rtf编码用的字符集是 "froman Tms Rmn",请把这个改为 "fcharset134"就可以了.测试如下string s = @"{\rtf1\ansi\deff0{\fonttbl{\f0\fcharset134;}{\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}";this.richTextBox1.Rtf = s;输出
    E
    n
    g
    l
    i
    s
    h
     
    w
    o
    r
    d
    s


      

  2.   

    不好意思,项目太忙,立刻给兄弟上分,你的方法的确解决了问题,不过我要每段都这么replace一下吗?万一是别的字符集怎么办?