C# 在JS和代码隐藏中处理字符串中的单引号

C# 在JS和代码隐藏中处理字符串中的单引号,c#,javascript,asp.net,globalization,C#,Javascript,Asp.net,Globalization,我的资源文件中有一个字符串,我在代码隐藏和javascript中使用它,但它在JS中抛出了错误 资源文件字符串为Par des changements de l'espace réservé 如何使用在所有三种情况下都有效的转义字符 1.JS(例如,我将TD的内部文本与该资源值进行比较) 2.代码隐藏(使用该资源值设置TD的内部文本) 3.ASPX(使用资源值设置标签的文本属性) 如果是单引号 如果我在资源文件中使用带反斜杠转义字符的值,它将在代码中用该斜杠打印该值。 使用反斜杠(\)可以对字符

我的资源文件中有一个字符串,我在代码隐藏和javascript中使用它,但它在JS中抛出了错误

资源文件字符串为Par des changements de l'espace réservé

如何使用在所有三种情况下都有效的转义字符

1.JS(例如,我将TD的内部文本与该资源值进行比较)

2.代码隐藏(使用该资源值设置TD的内部文本)

3.ASPX(使用资源值设置标签的文本属性)

如果是单引号

如果我在资源文件中使用带反斜杠转义字符的值,它将在代码中用该斜杠打印该值。
使用反斜杠(
\
)可以对字符进行转义:


如果您使用后端代码动态创建前端JS,那么您的JS也会使用双引号字符串

这个例子是用伪代码编写的,如果您将它写到一个PHP文件中,它实际上可能会工作(我知道您使用的不是这个):

var myStringInJS=”“;

这可能非常棘手,因此我要做的是:

  • 在服务器端代码中,始终使用双引号
  • Javascript总是使用单引号
  • 在服务器端代码javascript字符串中,我总是使用
    \'
  • 这可以防止任何混乱的代码发生

    因此,资源文件中的值为:

    Par des changements de l\'espace réservé
    
    导致服务器端字符串值为:

    string javascriptEscapedText = "Par des changements de l\'espace réservé";
    
    和javascript字符串值:

    var escapedText = 'Par des changements de l\'espace réservé';
    

    你试过
    \'
    了吗?就像
    中的“…de l'espace…”
    (虽然如果字符串用双引号引起来,你根本不需要转义撇号。)但是如果我在aspx.cs中打印这个字符串,它会将字符串打印为“Par des changements de l'espace réservé”;(将在代码后面打印)
    string javascriptEscapedText = "Par des changements de l\'espace réservé";
    
    var escapedText = 'Par des changements de l\'espace réservé';