Document.characterSet

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 AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
characterSetChrome Full support 1
Full support 1
Full support 1
Notes Alternate Name
Notes charset alias was made read-only in Chrome 45.
Alternate Name Uses the non-standard name: charset
Full support 1
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Edge Full support 12
Full support 12
Full support 12
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 12
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Firefox Full support 1
Full support 1
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 1.5
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
IE Full support 9
Full support 9
Full support 4
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 9
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Opera 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
Safari Full support 3
Full support 3
Full support 3
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 3
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
WebView Android Full support 1
Full support 1
Full support 1
Notes Alternate Name
Notes charset alias was made read-only in WebView 45.
Alternate Name Uses the non-standard name: charset
Full support 1
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Chrome Android Full support 18
Full support 18
Full support 18
Notes Alternate Name
Notes charset alias was made read-only in Chrome 45.
Alternate Name Uses the non-standard name: charset
Full support 18
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Firefox Android Full support 4
Full support 4
Full support 44
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 4
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Opera Android 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
Safari iOS Full support 1
Full support 1
Full support 1
Alternate Name
Alternate Name Uses the non-standard name: charset
Full support 1
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding
Samsung Internet Android Full support 1.0
Full support 1.0
Full support 1.0
Notes Alternate Name
Notes charset alias was made read-only in Samsung Internet 5.0.
Alternate Name Uses the non-standard name: charset
Full support 1.0
Alternate Name
Alternate Name Uses the non-standard name: inputEncoding

Legend

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