Accept-Charset

Before UTF-8 became the dominant encoding on the web, clients needed a way to declare supported character sets. The Accept-Charset request header indicated which character encodings the client was willing to accept.

Usage

The Accept-Charset header was part of content negotiation, allowing clients to list preferred character encodings such as utf-8, iso-8859-1, or windows-1252. The server selected the best match and encoded the response body accordingly.

Deprecated

This header is deprecated. Modern HTTP clients and servers default to UTF-8, making charset negotiation unnecessary. Sending this header reveals encoding preferences without practical benefit and increases the fingerprinting surface. Browsers no longer send the header.

UTF-8 handles the full Unicode range and has become the dominant encoding across the web. The Content-Type response header communicates the chosen encoding through its charset parameter, making a separate negotiation step redundant.

Directives

charset-name

A character encoding name registered with IANA, such as utf-8 or iso-8859-1.

\*

A wildcard matching any encoding not already listed in the header.

;q= (quality value)

A weight between 0 and 1 expressing relative preference, following the same syntax used by Accept. The default weight is 1.0.

Example

A client advertising a preference for UTF-8 with a fallback to ISO 8859-1. The quality value 0.7 signals the fallback is less preferred.

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

A broader request accepting UTF-8 at full priority and any other encoding at a lower priority.

Accept-Charset: utf-8, *;q=0.5

See also

Last updated: August 11, 2026