【发布时间】: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