如何通过编程方式阅读和修改Hindi .rtf文件?

时间:2014-12-11 12:18:57

标签: c# filestream rtf

我有一个印地语RTF文件,内容如下:

  

कोलकाता,11दिसंबरपश्चिमबंगालकेबर्दवानजिलेमेंकक्षानेकीएकछात्रानेफांसीलगाकरआत्महत्याकरली。

在我的控制台应用程序中,我想读取该RTF文件并以编程方式更改某些内容。

我使用streamreader来读取文件,但在转换为字符串时,它产生以下输出:

  

ÚUæCþUèØ-SßæS‰Ø

     

×Â★ßææ••¤è¼ææÂØæü#×æ〜æ×ð'ãUôÙð•¤æ¼æßæ

     

ÖæðÂæÜ,VVç¼â¢OU(¥æ§ü°°Ù°A)d×所以Âý¼ðàæ×D'Sßæ§ÙUE¥æñÚCDU¢»ê广告¥O I•¤•¤§üÜæð»AED “•¤è×æñÌãUæð¿é•¤èANU¥奥羽¥SÂÌæÜ×D'ç¿ç•¤â•¤èØâéçßÏæ¥南瓜•¤è•¤×E•ð¤âæÍ-âæͼßæ¥南瓜•ð¤¥Öæß•ð¤Öè¥æÚUæðÂÜ»ÌðÚãðUãñU¢Ð

     

SßæS‰ØçßÖæ»UDãUæÜæ¢C•¤非统组织¼æßæC•¤ØæANU C•¤UAE ... O×D'×AENA×EÚUæð»,Sßæ§ÙUE•ð¤©Â¿æÚ•d ¤çÜ°Âý¼ðàæ•ð¤¥SÂÌæÜæð'×ð'¥æßàØ•¤¼ææ¥æð'•¤æÂØæü#ÂýÕ¢Ï畤Øæ»ØæãñUÐ

我已尝试使用Windows格式的RichTextBox来读取RTF文件,但它始终显示无效的文件格式。

那么在C#

中读取和修改rtf文件的最佳解决方案是什么
StreamReader sr = new StreamReader(fpath, Encoding.Default, true);
string s1 = sr.ReadToEnd();
sr.Close();

也尝试了

using (System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox())
{
    // Get the contents of the RTF file. Note that when it is 
    // stored in the string, it is encoded as UTF-16. 
    string s = System.IO.File.ReadAllText(fpath);

    // Convert the RTF to plain text.
    rtBox.Rtf = s; // error file format invalid
    string plainText = rtBox.Text;
}

1 个答案:

答案 0 :(得分:0)

RichTextBox控件可以load an RTF file directly,不要使用StreamReader来读取RTF文件,因为它可能包含大量Control Characters

将文件加载到RichTextBox后,使用Text属性获取文件的纯文本。

RichTextBox还有SaveFile方法将修改后的内容保存到文件中。