解码文本文件

时间:2013-10-09 12:50:20

标签: c# html winforms

所以我将以下内容加载到一个文本文件中,然后我将其读入列表中的c#程序,然后将列表转换为字符串。现在我想解码所有HTML中的字符串,但我无法解决。有人现在怎么样? 以下是要格式化的文本:

<p> <span style="font-size: 18px;"><strong>Varifr&aring;n kommer den svarta m&auml;rren&nbsp; i Sm&aring;land?</strong></span></p>
  <p> <span style="font-size: 14px;"><input checked="checked" name="ruta1" type="checkbox" value="Svar 1" />&nbsp;Fr&aring;n Tyskland</span></p>
    <p> <input type="checkbox" />Fr&aring;n Belgien</p>
      <p> &nbsp;</p>
        <p> <input type="checkbox" />&nbsp;Fr&aring;n Turkiet</p>
      <p>  &nbsp;</p>
   <p>  &nbsp;</p>
<p>  &nbsp;</p>
public partial class Form1 : Form
    {
        string temp = "TextKod.txt";
        string line = "";
        List<string> texten = new List<string>();
        string vetEj;
        string hoppSan;
        public Form1()
        {
            InitializeComponent();

            StreamReader sr = new StreamReader(temp);

            while ((line = sr.ReadLine()) != null)
            {
                string[] myarray = line.Split('\r');
                vetEj = myarray[0];
                texten.Add(vetEj);
            }
            hoppSan = string.Join("\r", texten);

2 个答案:

答案 0 :(得分:1)

我认为真正想要的编码字符串。但无论如何,添加对System.Web的引用并利用HttpUtility类。解码:

HttpUtility.HtmlDecode(htmlString);

并编码:

HttpUtility.HtmlEncode(htmlString);

要删除所有HTML元素,请执行以下操作:

var cleanHtml = Regex.Replace(htmlString, "<.*?>", "");

您可以将正则表达式修改为此<.*?>|&.*?;以删除那些&nbsp;元素,但这也与&aring;中的Fr&aring;n Tyskland相匹配,这取决于您。

答案 1 :(得分:0)

如果您使用的是.NET 4.0+,您还可以使用WebUtility.HtmlDecode,它不需要额外的程序集引用,因为它在System.Net命名空间中可用。

这也可以帮助

 myEncodedString = HttpUtility.HtmlEncode(string);