Accept-Charset

Accept-Charset は HTTP のリクエストヘッダーで、クライアントが理解できる文字エンコーディングを広報します。コンテンツネゴシエーションを使用して、サーバーは提案の1つを選択、使用し、クライアントに選択結果を Content-Type レスポンスヘッダー内、ふつうは charset= 引数の中で通知します。通常はそれぞれのリソースの既定値が正しく、これを送信するとフィンガープリンティングを許してしまうことがあるため、ブラウザーは通常、このヘッダーを設定しません。

サーバーが一致する文字エンコーディングを提供できない場合、理論的には 406 Not Acceptable エラーコードを返すことができます。しかし、より使い勝手をよくするために、これはめったに行われず、 Accept-Charset ヘッダーは無視されます。

HTTP/1.1 の初期のバージョンでは、既定の文字エンコーディングを ISO-8859-1 と定義していました。これはすでに推奨されなくなっており、コンテンツ型ごとに個別に既定値が設定されるようになりました。

UTF-8 への対応が進み、圧倒的に推奨される文字エンコーディングになっています。設定に基づいたエントロピーを減少させることでより良いプライバシーを保証するために、すべてのブラウザーが Accept-Charset ヘッダーを省略しています。 Internet Explorer 8 以降、 Safari 5 以降、 Opera 11 以降、 Firefox 10 以降、 Chrome 27 以降は送信しなくなりました。

ヘッダー種別 リクエストヘッダー
禁止ヘッダー名 はい

構文

Accept-Charset: <charset>

// 複数の型を品質値で重みづけした構文
Accept-Charset: utf-8, iso-8859-1;q=0.5

ディレクティブ

<charset>
utf-8 または iso-8859-15 のような文字セット。
*
ヘッダー内の他の場所に記述されていない文字セット。 '*' はワイルドカードとして使用されます。
;q=<weight>
エンコーディングはすべて、重みと呼ばれる相対的な品質値を使用して表現された設定の順番で配置されます。

Accept-Charset: iso-8859-1

Accept-Charset: utf-8, iso-8859-1;q=0.5

Accept-Charset: utf-8, iso-8859-1;q=0.5, *;q=0.1

仕様書

仕様書 題名
RFC 7231, セクション 5.3.3: Accept-Charset Hypertext Transfer Protocol (HTTP/1.1): Semantics and Context

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Accept-CharsetChrome 未対応 ? — 27Edge 未対応 なしFirefox 未対応 ? — 10IE 未対応 ? — 8Opera 未対応 ? — 11Safari 未対応 ? — 5WebView Android 未対応 ? — ?Chrome Android 未対応 ? — 27Firefox Android 未対応 ? — 10Opera Android 未対応 ? — 11Safari iOS 未対応 ? — 4.2Samsung Internet Android 未対応 ? — 1.5

凡例

未対応  
未対応

関連情報