JQuery和属性中的特殊字符

Ωme*_*ega 2 html javascript jquery

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

$('#password').attr('placeholder', 'Contraseña');
Run Code Online (Sandbox Code Playgroud)

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

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

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

Poi*_*nty 5

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

$('#password').attr('placeholder', 'Contrase\u00f1a');
Run Code Online (Sandbox Code Playgroud)

就个人而言,我会使用.prop()而不是.attr(),虽然两者都应该在这里工作.

一般程序是

  1. 找到HTML转义的数字等价物(例如,ñ也可以写ñ);
  2. 将十进制数字表示转换为十六进制(so,241- > F1);
  3. \uNNNN使用十六进制值的4位版本编写JavaScript 转义.

编辑 - "CBroe"指出,如果您将源代码保存为UTF-8文件,那么您可以直接对该字符进行编码,它应该可以工作:

$('#password').attr('placeholder', 'Contraseña');
Run Code Online (Sandbox Code Playgroud)

要实现这一点,要求您的服务器正确发送具有适当字符编码值的标头,但您仍然应该这样做.即使您正确地存储和提供UTF-8,十六进制转义也将起作用.