【问题标题】:Issues with the accented characters重音字符的问题
【发布时间】: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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    [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
      // ñíóúü¡¿
    

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 2013-07-12
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2021-07-07
      • 2020-11-05
      相关资源
      最近更新 更多