How do browser determine the encoding used ?

I do understand there are 2 ways to set the encoding.

  1. By using Content-Type header.
  2. By using meta tags in HTML.

Since Content-Type header is not mandatory and is required to be set explicitly ( if server side wants, it can set it) and meta tag is also optional.

In case, both of these are not present, how does browser determine the encoding used for parsing the content?


It is set in the <head> like this:

<meta charset="UTF-8">

I think if this is not set in the head the browser will set a default encoding.


 ? Mail() function in Laragon v.2.2.2 - Wrong encoding after sent
 ? html attributes coming as encoded values from Database instead of same values Ex; " as &quot;
 ? Open .txt file in Python after skipping lines - Encoding issue
 ? what does PHP substr do on utf-8 string?
 ? I'm trying to parse some table and they have some weird alphabet-like non-ascii character
 ? encoding issues with rvest, "Â " appearing instead of a space in character strings
 ? JSP String encoding issue
 ? Emoji characters changing to unknown characters
 ? UTF-8 all the way through
 ? R doesn't accept certain Serbian characters with diacritics (č, ć)