3

我的网站上有一个搜索框,我需要将用户输入的所有西班牙语字符替换为等效的英文字母。我已经编码,如下所示。当我将它插入我的项目时,即使创建一个编码相同的简单 html 页面,这也不起作用。我的页面正在使用<meta charset="utf-8" />. 当我创建小提琴http://jsfiddle.net/KJAy3/时,这工作正常。这就是它在调试器中的显示方式在此处输入图像描述

我究竟做错了什么?我应该给我们什么样的编码?此 Replace 方法在表单提交之前触发。

function encodeSearch(term){

term=term.replace("á","a");
term=term.replace("Á","A");
term=term.replace("é","e");
term=term.replace("É","E");
term=term.replace("í","i");
term=term.replace("Í","I");
term=term.replace("ó","o");
term=term.replace("Ó","O");
term=term.replace("ú","u");
term=term.replace("Ú","U");
term=term.replace("ñ","n");
term=term.replace("Ñ","N");
return term;

}

4

2 回答 2

8

你用过<script type="application/javascript" charset="utf-8" src="yourfile.js"></script>"吗?(当然,假设您的文件保存为 utf-8。)

于 2012-06-18T18:31:51.980 回答
0

如果您要在 HTML 中使用这些特殊字符,最好replace对所有特殊字符使用此 String 方法:

[somestring].replace(/[\u0080-\u024F]/g,
                      function(a) {
                        return '&#'+a.charCodeAt(0)+';';
                      });

它将所有特殊字符转换为数字 html 实体,并防止需要在您的 javascript 中键入所有这些字符,例如

 'ñíóúü¡¿'.replace(.replace(/[\u0080-\u024F]/g,
                      function(a) {
                        return '&#'+a.charCodeAt(0)+';';
                      });
  //=> result
  // &#241;&#237;&#243;&#250;&#252;&#161;&#191;
于 2012-06-18T18:57:08.013 回答