2

在我的 jquery 脚本中,我需要动态翻译一些内容,所以这样的功能的一部分是

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

我试图将占位符属性更改为 text Contraseña

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

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

4

1 回答 1

6

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

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

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

一般程序是

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

编辑——“CBroe”的好处是,如果您将源代码维护为 UTF-8 文件,那么您可以直接对该字符进行编码,它应该可以工作:

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

为此,您的服务器必须正确发送具有适当字符编码值的标头,但无论如何您确实应该这样做。当然,即使您正确存储和提供 UTF-8,十六进制转义也会起作用。

于 2013-10-07T15:21:12.137 回答