The Document.characterSet read-only property returns the character encoding of the document that it's currently rendered with. (A character encoding is a set of characters and how to interpret bytes into those characters.)

A “character set” and a “character encoding” are related, but different. Despite the name of this property, it returns the encoding.

Users can override the developer-specified encoding inside the Content-Type header or inline like <meta charset="utf-8">, such as with Firefox's View → Text Encoding menu. This override is provided to fix incorrect developer-specified encodings that result in garbled text.

The properties document.charset and document.inputEncoding are legacy aliases for document.characterSet. Do not use them any more.

Syntax

var string = document.characterSet;

Examples

<button onclick="console.log(document.characterSet);">
  Log character encoding
</button>
<!-- displays document's character encoding in the dev console, such as "ISO-8859-1" or "UTF-8" -->

Specifications

Specification Status Comment
DOM
The definition of 'characterSet' in that specification.
Living Standard Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 45
Full support 45
Full support Yes
Notes Alternate Name
Notes charset alias was made read-only in 45.
Alternate Name Uses the non-standard name: charset
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Edge Full support Yes
Full support Yes
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Firefox Full support Yes
Full support Yes
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
IE ?
?
?
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Opera ?
?
?
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Safari ?
?
Full support 9
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
WebView Android Full support 45
Full support 45
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Chrome Android Full support 45
Full support 45
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Edge Mobile Full support Yes
Full support Yes
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Firefox Android Full support Yes
Full support Yes
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support Yes
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Opera Android ?
?
?
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Safari iOS ?
?
?
Alternate Name
Alternate Name Uses the non-standard name: charset
?
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Samsung Internet Android ?

Legend

Full support  
Full support
Compatibility unknown  
Compatibility unknown
See implementation notes.
See implementation notes.
Uses a non-standard name.
Uses a non-standard name.

Document Tags and Contributors

Last updated by: Tigt,