【发布时间】:2012-06-18 18:28:41
【问题描述】:
我的网站上有一个搜索框,我需要将用户输入的所有西班牙语字符替换为等效的英文字母。我已经编码,如下所示。当我将它插入我的项目时,即使创建一个编码相同的简单 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;
}
【问题讨论】:
-
确保包含此代码的文件以
utf-8编码保存 -
源文件本身的编码也很重要。您是否偶然将其保存为 ascii?
-
你记得保存
encodeSearch()的结果吗? -
@Esailija 我怎么知道文件保存为 utf-8?该脚本位于 .js 文件中,该文件位于具有 utf8 字符集的页面中,如上所示。
-
@pushya 是的,该页面有
utf-8,但由于您尚未将文件保存在utf-8中,因此字符显示错误。你需要两者才能工作。当您像这样保存文件时,您可以选择要使用的编码:i.imgur.com/qaPFb.png 这可能取决于您的编辑器。
标签: javascript encoding special-characters