0

URL 内の Internet Explorer と UTF-8 文字の動作に問題が 1 つあります。"Send UTF-8 URLs"Internet Options でIE のチェックが外されていると、サイトが要求を完了できないことがわかりました。

サイトのリンクをクリックして新しいページで開くと、404 エラー ページが表示されます。同じページ (target="_blank" なし) でリンクを開くと、リンクが機能します。

パケットをトレースすると、UTF8 リクエストの場合、次のようになることがわかりました。

GET /%EB%89%B4%EC%8A%A4/ HTTP/1.1\r\n

404 応答の場合、無効な要求は次のようになります。

GET /%B4%BA%BD%BA/ HTTP/1.1\r\n

要求された URL は です/뉴스問題は、このサイトを使用して、最初の有効なリンクが実際には UTF8 でエンコードされた「뉴스」であることを確認できたことです。2 つ目は同じ文字列ですが、システムのデフォルトである EUC-KR でエンコードされています。

W3C i18n チェッカーを使用すると、次の結果が得られました。

Character encoding      Code
HTTP Content-Type   UTF-8   Content-Type: text/html; charset=UTF-8
Byte order mark (BOM)   No  
Meta tag    UTF-8   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

Language        Code
HTML tag    ko  <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko">
HTTP Content-Language   None found

Text direction      Code
Default direction   LTR (by default)

Class & id names        Code
Non-ascii class or id names None    
Non-NFC class or id names   None

Request headers     Code
Accept-Language en-US en    Accept-Language: en-US,en;q=0.8
Accept-Charset  ISO-8859-1 utf-8 *  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

SO、私が今抱えている問題は、新しいタブでリンクを開くときに、IE がシステムのデフォルトのエンコードで URL をエンコードし、サイトが壊れることです。このオプションをオフにしているユーザーのために、IEにこれらのURLを UTF8 として送信させる方法を探していますか? これを行うために追加できるメタタグはありますか、またはすべての URL またはその他のソリューションを解析するために何らかの JS 変更を行う必要がありますか?

私はこれをオンラインで広範囲に検索し、UTF8に関する多くのリソースを見つけましたが、IEがシステムのデフォルトエンコーディングに戻ることを伴うこの状況に対する解決策はありません.

御時間ありがとうございます。

4

1 に答える 1

1

リンクをエンコードする必要があります。URL は HTML4 ブラウザーでは違法です。HTML4 ブラウザーはランダムな処理を行って修正を試みます。

HTML4<a href="/öäöä"></a>では無効ですが、<a href="/%C3%B6%C3%A4%C3%B6%C3%A4"></a>有効で機能します。

于 2013-04-28T11:09:22.600 に答える