0

次のコード スニペットを含む Web ページがあります。

...
<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">
...

文字列QA Groupe des papiersとを含むテーブル行を非表示にする JavaScript を開発していますQA 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 番目の行では機能していません。問題が 2 番目のスクリプトの特殊文字éに関連していることはわかっていますが、問題を解決する方法がわかりません。助けてください、ありがとう。

4

2 に答える 2

1

ユニコードは複雑なものです。文字セットには、áéなどの 2 つの異なる書き方の文字があります。

文字の 1 つを別の文字に置き換えるéと、問題が解決する場合があります。(これについてはウィキペディアで詳しく読むことができます。)

引き続き問題が発生する場合は、JavaScript ファイルと Web ページのエンコードに使用されているエンコードも確認してください。

Web ページと JavaScript ファイルの両方を UTF-8 でエンコードし、これをブラウザーに伝える必要があります。これは、Web ページに次の少なくとも 1 つが含まれている必要があることを意味します。

  • 文字エンコーディングを指定する 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>
  • バイト オーダー マーク(非推奨)

JavaScript ファイルは、次の方法の 1 つ以上を使用して UTF-8 として指定できます。

  • charset属性の使用
  • 文字エンコーディングを指定する HTTP ヘッダーを使用します。例えばContent-Type: text/javascript; charset=UTF-8

参考文献:

于 2012-09-26T14:09:56.987 に答える
0

考えられる理由は、JavaScriptファイルの文字エンコードがHTTPヘッダーで適切に宣言されていないことです。おそらくJavaScriptファイルはISO-8859-1またはWindows-1252でエンコードされていると解釈されますが、実際にはUTF-8でエンコードされているか、またはその逆です。つまり、「é」は本来あるべき姿ではありません。これを確認する簡単な方法はalert('é')です。エンコーディングの問題については、W3Cページの文字エンコーディングを確認してください。

于 2012-09-26T15:52:59.833 に答える