JQuery和属性中的特殊字符

时间:2013-10-07 15:19:22

标签: javascript jquery html

在我的jquery脚本中,我需要动态翻译一些内容,因此部分功能是

$('#password').attr('placeholder', 'Contraseña');

我尝试将占位符属性更改为文本Contraseña

不幸的是,jquery显示了文本Contraseña

强制jquery显示正确解码文本的技巧是什么?

1 个答案:

答案 0 :(得分:5)

您必须使用JavaScript语法而不是HTML语法来转义特殊字符。

$('#password').attr('placeholder', 'Contrase\u00f1a');

就我个人而言,我也会使用.prop()代替.attr(),但两者都可以在这里使用。

一般程序是

  1. 查找HTML转义的等效数字(例如,ñ也可以写成ñ);
  2. 将十进制数字表示转换为十六进制(因此,241 - > F1);
  3. 使用十六进制值的4位数版本编写JavaScript \uNNNN转义。
  4. 编辑 - “CBroe”指出,如果您将源代码保存为UTF-8文件,那么您可以直接对该字符进行编码,它应该可以正常工作:

    $('#password').attr('placeholder', 'Contraseña');
    

    要实现这一点,要求服务器正确发送带有相应字符编码值的标头,但无论如何你真的应该这样做。即使您正确地存储和提供UTF-8,十六进制转义也将起作用。