1

Firefoxのエンコーディング文字をテストしています。

しかし、その事実は私を混乱させました。

HTMLコード:

<html lang="zh_CN">
<head>
<title>some Chinese character</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<img src="http://localhost/xxx" />
</body>

xxxはいくつかの漢字です。これらの文字は、HTTPで転送するには、%xxのような形式にエンコードする必要があります。

まず、ソースファイルをUTF-8でエンコードします。Firefoxを使用してhtmlファイルを開きます。imgラベルはリクエストを送信します。「xxx」文字はUTF8でエンコードされています。

  • HTMLソースファイルをUTF8でエンコードします。charset= utf8、ブラウザはURLをUTFでエンコードします)

メタをに変更しまし <meta http-equiv="Content-Type" content="text/html; charset=gbk"> たが、何も変更されていません。

  • HTMLソースファイルをUTF8でエンコードします。charset= gbk、ブラウザはURLをUTFでエンコードします)

次に、ソースファイルをANSI、おそらくGBKまたはGB2312に保存します。

charset = gbkの場合でも、UTF8で文字をエンコードします。

  • HTMLソースファイルをGBKでエンコード、charset = gbk、ブラウザでURLをUTFでエンコード)

ただし、charset = utf8の場合、文字はGBKでエンコードされていました。ちなみに、他の漢字は正しく表示できません。たとえば、タイトルの文字列などです。

  • HTMLソースファイルをGBKでエンコード、charset = utf8、ブラウザでURLをGBKでエンコード)

ブラウザのエンコーディング動作を制御する方法は?

4

1 に答える 1

2

UTF-8はURLエンコードの標準です。ソースファイルを物理的にGBKでエンコードutf-8し、コンテンツタイプで使用する場合、ブラウザに嘘をついているだけで、一貫性のない結果または機能しない結果が得られます。

新しいURIスキームで、Universal Character Set [UCS]の文字で構成されるテキストデータを表すコンポーネントを定義する場合、データは最初にUTF-8文字エンコード[STD63]に従ってオクテットとしてエンコードする必要があります。次に、予約されていないセットの文字に対応しないオクテットのみをパーセントエンコードする必要があります。たとえば、文字Aは「A」、文字LATIN CAPITAL LETTER A WITH GRAVEは「%C3%80」、文字カタカナ文字Aは「%E3%82%A2」と表されます。

于 2012-12-22T08:33:03.043 に答える