0

ユーザーがテキストを入力してフォーム フィールドを検索できるようにする多言語サイトを持っていますが、テキストはバックエンドに向かう前に Javascript を通過します。

「欢」のような特殊文字は、Firefox では適切に処理されていますが、IE のどのバージョンでも処理されていません。

誰かが何が起こっているのか理解するのを手伝ってくれますか?

ありがとう!

4

3 に答える 3

2

accept-charset属性をフォームに追加すると便利な場合があります。これは、サーバーが受け入れる文字セットをブラウザーに指定します。JS はこれに従い、その形式で送信する必要があります。

IE が文字エンコーディングを処理する方法に影響を与えるその他の要因:

  • 正しい doctype を指定する (つまり、標準と「準拠」モード)。
  • Content-Typeサーバーから送信されたヘッダー。ほとんどのブラウザーはメタタグよりもヘッダーに準拠していると思います。そのため、サーバーが ISO-8859-1 を指定し、ページが UTF-8 を指定している場合、混乱が生じるでしょう。
  • Content-Typeヘッダーの形式。一部の「最新の」ブラウザ (特に FF) は、utf-8 のエイリアスとして utf8 を受け入れます。IE はそうではなく、ISO-8859-1 にフォールバックします。(これは個人的な辛い経験から来ています! ;)

文字セットは本当に苦痛です。すべてのコンポーネントが前後で同じ「言語」を使用していることを確認する必要があります。これには、ストレージ通信の両方が含まれます。

何が起こっているかを追跡するための次のステップは、サーバー コードで JS 要求のヘッダーをログに記録し、エンコーディングが期待どおりのものであることを確認することです。

于 2009-10-31T00:28:30.727 に答える
1

ブラウザによってはデフォルトが異なる場合があります。エンコーディング用のメタ タグを利用して、強制的にサイトのデフォルト エンコーディングを設定してください。ここのように:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

UTF-8 は探しているものではないかもしれませんが、最も可能性が高いです。テスト、Firefox の表示 -> 文字エンコーディングに移動し、手動で設定します。どちらが機能するかを知ることで、どちらに設定するかがわかります。スキーマのリスト: http://tlt.its.psu.edu/suggestions/international/web/tips/declare.html およびその他: http://tlt.its.psu.edu/suggestions/international/bylanguage /index.html

于 2009-10-29T23:34:28.253 に答える
0

文字とページの両方がUTF-8エンコーディングを使用していることを確認してください。

于 2009-10-29T20:29:12.223 に答える