我想解码HTML或文本。我使用了相同的结果 - 这个功能:
例如,当我想解码 Martian's atmosphere
时,我会 Martian's atmosphere
而不是 Martian's atmosphere
当我使用这段代码(用于exp)时,一切都正确(字符被解码):
TextBox1.Text = "Martian's atmosphere"
For i = 0 To 2
TextBox1.Text = WebUtility.HtmlDecode(TextBox1.Text)
i += 1
Next
问题是我不想使用循环,因为有时我必须解码完整的HTML页面或长文本。
感谢' S
答案 0 :(得分:1)
听起来你没有任何方法事先知道字符串需要解码多少次才能得到你想要的结果,所以你将不得不使用循环或递归来得到想要的结果。这是一个递归函数:
function DecodeUntilUnchanged(string str)
{
string decoded = WebUtility.HtmlDecode(str);
if(decoded == str)
return str;
return DecodeUntilUnchanged(decoded);
}
你会这样使用它:
TextBox1.Text = DecodeUntilUnchanged(TextBox1.Text);