我有一个印地语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;
}
答案 0 :(得分:0)
RichTextBox
控件可以load an RTF file directly,不要使用StreamReader
来读取RTF文件,因为它可能包含大量Control Characters
。
将文件加载到RichTextBox
后,使用Text
属性获取文件的纯文本。
RichTextBox
还有SaveFile
方法将修改后的内容保存到文件中。