title: What are the different character sets used for?
body: <p>The C++ standard mentions multiple different character sets. In particular, it mentions the following character sets:</p>
  
  <ol>
  <li>In 2.2 [lex.phases] bullet 1 <em>physical source file characters</em> and their mapping to the <em>basic source character set</em> is mentioned.</li>
  <li>In 2.2 [lex.phases] bullet 2 <em>execution character set</em> is mentioned.</li>
  <li>In 2.3 [lex.charset] paragraph 3 a <em>basic execution character set</em> and a <em>basic execution wide-character</em> set are mentioned.</li>
  <li>The same section 2.3 [lex.charset] 3 also mentions an <em>execution character set</em> and an <em>execution wide-character set</em>.</li>
  <li>When reading or writing files these use some other character set.</li>
  </ol>
  
  <p>What are all those different character set used for, how are conversions between them done, and which of these values are locale dependent? In particular, how are string literals represented?</p>