属性中的 JQuery 和特殊字符

JQuery and special characters in attribute

本文关键字:特殊字符 JQuery 属性      更新时间:2023-09-26

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

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

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

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

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

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

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

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

一般程序是

  1. 查找 HTML 转义的数字等效项(例如,ñ也可以写ñ);
  2. 将十进制数字表示形式转换为十六进制(因此,241 -> F1 );
  3. 编写一个 JavaScript 'uNNNN 使用十六进制值的 4 位版本进行转义。

编辑 — "CBroe"提出了一个很好的观点,即如果您将源代码维护为 UTF-8 文件,那么您可以直接对该字符进行编码,它应该可以工作:

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

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