处理JavaScript中的特殊字符

时间:2012-09-26 13:32:27

标签: javascript asp.net html-parsing special-characters

我有一个包含以下代码段的网页:

...
<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
   <h3 class="ms-standardheader">
      <nobr>
         QA Groupe des papiers
         <span class="ms-formvalidation" title="Ce champ est obligatoire." > *</span>
      </nobr>
   </h3>
</td>
...
<td nowrap="true" valign="top" width="190px" class="ms-formlabel">
   <h3 class="ms-standardheader">
      <nobr>
         QA Description métier
         <span class="ms-formvalidation" title="Ce champ est obligatoire." > *</span>
      </nobr>
   </h3>
</td>
<td valign="top" class="ms-formbody">
...

我正在开发一个JavaScript,它应该隐藏包含字符串QA Groupe des papiersQA Description métier的表行。

这是剧本:

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
    jQuery(document).ready(function($) {
       $("h3.ms-standardheader:contains('QA Groupe des papiers')").closest("tr").hide();
       $("h3.ms-standardheader:contains('QA Description métier')").closest("tr").hide();
    });
</script>

脚本适用于第一行,但不适用于第二行。我知道问题与第二个脚本中的特殊字符é有关,但我不知道如何解决问题。请帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

Unicode是一件复杂的事情。字符集有两种不同的写字符,如áé等。

é个字符中的一个替换为另一个可能会解决您的问题。 (你可以read more about this at Wikipedia。)

如果您仍然遇到问题,请检查编码,使用该文件和网页进行编码。

网页和JavaScript文件都应该是UTF-8编码并将其传达给浏览器。这意味着网页必须至少包含以下

之一
  • 指定字符编码的HTTP标头;例如Content-Type: text/html; charset=UTF-8
  • 指定编码的meta标记; <meta charset=UTF-8> HTML5 )或<meta http-equiv=Content-Type content='text/html; charset=UTF-8>
  • A Byte Order Marknot recommended

可以使用以下一种或多种方法将JavaScript文件指示为UTF-8:

  • 使用charset属性
  • 使用指定字符编码的HTTP标头;例如Content-Type: text/javascript; charset=UTF-8

进一步阅读:

答案 1 :(得分:0)

可能的解释是,在HTTP标头中尚未正确声明JavaScript文件的字符编码。可能JavaScript文件被解释为ISO-8859-1或Windows-1252编码,但实际上是UTF-8编码,反之亦然,这意味着“é”不应该是它应该是什么。检查此问题的一种简单方法是alert('é')。关于编码问题,请查看W3C页面Character encodings