C#和JavaScript - 逃避单引号字符

时间:2014-09-01 14:48:44

标签: c# javascript asp.net escaping

我有一个XML文件,存储如下字符串:

Error: The form's name field was left empty!

现在,XML文件中的此消息用于各种位置。例如,它有时绑定到aspx控件,有时会显示在JavaScript警报中。

为了逃避单引号字符,我按如下方式修改了消息:

Error: The form\'s name field was left empty!

当消息显示在JavaScript警报中时,它会以单引号转义的方式显示。但是,当它绑定到aspx控件时,它会按原样显示。

我尝试按如下方式修改消息:

Error: The form's name field was left empty!

Error: The form‘s name field was left empty!

在这两种情况下,消息显示为绑定到asp控件时应该显示的内容。但是,当传递给JavaScript警报时,我在IE8中得到了“)预期的”错误。

我怎样才能让这个对于aspx控件和JavaScript警报都有效?我已经浪费了很多时间。非常感谢你。

N.B。我使用的是非常旧版本的.NET Framework,特别是2.0。

1 个答案:

答案 0 :(得分:2)

您应该只是逐字存储您的消息,然后让每个客户端处理特殊字符。因此,存储为Error: The form's name field was left empty!然后在每种语言中添加一个检查特殊字符的步骤并相应地转义它们。