ユーザーがテキストを入力してフォーム フィールドを検索できるようにする多言語サイトを持っていますが、テキストはバックエンドに向かう前に Javascript を通過します。
「欢」のような特殊文字は、Firefox では適切に処理されていますが、IE のどのバージョンでも処理されていません。
誰かが何が起こっているのか理解するのを手伝ってくれますか?
ありがとう!
ユーザーがテキストを入力してフォーム フィールドを検索できるようにする多言語サイトを持っていますが、テキストはバックエンドに向かう前に Javascript を通過します。
「欢」のような特殊文字は、Firefox では適切に処理されていますが、IE のどのバージョンでも処理されていません。
誰かが何が起こっているのか理解するのを手伝ってくれますか?
ありがとう!
accept-charset
属性をフォームに追加すると便利な場合があります。これは、サーバーが受け入れる文字セットをブラウザーに指定します。JS はこれに従い、その形式で送信する必要があります。
IE が文字エンコーディングを処理する方法に影響を与えるその他の要因:
Content-Type
サーバーから送信されたヘッダー。ほとんどのブラウザーはメタタグよりもヘッダーに準拠していると思います。そのため、サーバーが ISO-8859-1 を指定し、ページが UTF-8 を指定している場合、混乱が生じるでしょう。Content-Type
ヘッダーの形式。一部の「最新の」ブラウザ (特に FF) は、utf-8 のエイリアスとして utf8 を受け入れます。IE はそうではなく、ISO-8859-1 にフォールバックします。(これは個人的な辛い経験から来ています! ;)文字セットは本当に苦痛です。すべてのコンポーネントが前後で同じ「言語」を使用していることを確認する必要があります。これには、ストレージと通信の両方が含まれます。
何が起こっているかを追跡するための次のステップは、サーバー コードで JS 要求のヘッダーをログに記録し、エンコーディングが期待どおりのものであることを確認することです。
ブラウザによってはデフォルトが異なる場合があります。エンコーディング用のメタ タグを利用して、強制的にサイトのデフォルト エンコーディングを設定してください。ここのように:
<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
文字とページの両方がUTF-8エンコーディングを使用していることを確認してください。