转义时超出字符串长度限制

时间:2014-02-14 21:45:58

标签: c# .net xml text escaping

文本被引入系统,它可以是任何东西,它必须作为文本存储在数据库中(此处为长度限制),并且必须将其转义为XML安全。

在这种情况下(长度限制为6):

string theInput = "hell&";

它将被转移到

"hell&"

然后保存到(截断)

"hell&a"

现在的问题是我假设输入被很好地转义,而不是。

在这种情况下,所需的输出将是“地狱”,因为我对保存转义输出无法正确存储的内容不感兴趣。

是否有内置功能来实现这一目标? (.NET framework 4),像;

SecurityElement.Escape(text, maxLen); //this overload does not exist :(

如果没有,建议?

编辑:只是为了澄清;输入必须存储XML-Safe(在数据库上),因为系统的其他部分需要它(包括不容易更新客户端)

1 个答案:

答案 0 :(得分:0)

没有任何内置可以达到你想要的效果。您需要做的是转义完整的字符串,然后检查长度。如果超过最大值,则必须检查最大索引处的char是否介于&和&之间。和;如果确实如此,则需要进行进一步的分析。