【问题标题】:How to Read and modify Hindi .rtf file programmatically?如何以编程方式读取和修改印地语 .rtf 文件?
【发布时间】:2014-12-11 22:55:26
【问题描述】:

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

कोलककेनननजिलेजिलेनौनौनौनौकीकीएकएकनेनेनेनेने

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

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

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

×Âý Ñ Sßæ§Ù Üê •¤è ¼ßæ ÂØæü# ׿~æ ×ð´ ãUôÙð •¤æ ¼æßæ

ÖæðÂæÜ, vv ç¼â¢ÕÚ (¥æ§ü°°Ù°â)Ð ×ŠØ Âý¼ðàæ ×ð´ Sßæ§Ù Üê ¥æñÚ ÇðU¢»ê âð ¥Õ Ì•¤ •¤§ü Üæð»æð ´ •¤è ׿ñÌ ãUæð ¿é•¤è ãñU ¥õÚU ¥SÂÌæÜ ×ð´ ç¿ç•¤ˆâ•¤èØ âéçßÏæ¥ô´ •¤è •¤×è •ð¤ âæÍ-âæÍ ¼ßæ¥ô´ •ð¤ ¥Öæß •ð¤ Öè ¥æÚUæð ܻÌð ÚãðU ãñU¢Ð

SßæS‰Ø çßÖæ» Ùð ãUæÜæ¢ç•¤ ØãU ¼æßæ ç•¤Øæ ãñU 畤 Úæ…Ø ×ð´ ׿ñâ×è ÚUæð», Sßæ§Ù Üê •ð¤ ©Â¿æÚ •ð ¤ çܰ Âý¼ðàæ •𤠥SÂÌæÜæð´ ×ð´ ¥æßàØ•¤ ¼ßæ¥æð´ •¤æ ÂØæü# ÂýÕ¢Ï ç•¤Øæ »Øæ ãñUÐ

我试过用RichTextBox的windows窗体来读取RTF文件,但总是显示Invalid File Format。

那么在 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;
}

【问题讨论】:

  • 指定编码可能是最好的解决方案。
  • C#.net 支持的所有编码我都试过了
  • 但你并没有尝试展示你尝试过的东西。
  • 尝试修剪开头和结尾的任何'\r'或'\n'。
  • 印地语是唯一的 unicode 语言环境,打赌文件保存为 UTF-8 或 UTF-16

标签: c# filestream rtf


【解决方案1】:

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

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

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

【讨论】:

  • 我已经使用了richtextbox。请参阅我发布的代码。它给出错误文件格式无效。甚至 loadfile 方法也会给出同样的错误。
  • 你能在 MS Word 中打开它吗?
  • MS word 不是服务器的正确方式。在我的本地系统中,rtf 文件在 MS 中打开,但产生上述相同的结果,如
  • 相同的结果,如 ×ÙæðÚ¢U…æÙ-çâÙð׿ ¥×ðçÚU•¤è ÙõâðÙæ âð ×éÜæ•¤æÌ •¤ÚU »¼»¼ ãéU§ZU ç•¤× Üæòâ ° ¢…æðçÜâ, x ç¼âÕÚU (¥æ§üU°°Ù°â)Ð çÚU°çÜÅUè ÅUèßè SÅUæÚU ç•¤× •¤¼æüçàæØæ¢ •¤ãUÌè ãñ´U 畤 çÂÀÜð ×ãUèÙð âõÖæ‚Ø âð ©U‹ ãð´U ¥×ðçÚ•¤è ÙõâðÙæ âð ×éÜæ•¤æÌ •¤æ ×õ•¤æ ç×ÜæÐ 当我选择 Chanayka 字体时,它会以印地语显示文本
  • rtb.SelectAll(); rtb.SelectionFont = new Font("Chanayka",...); 怎么样,比如this
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
相关资源
最近更新 更多