title: Does C++ support converting between character encodings other than UTF-8, UTF-16, and UTF-32?
body: <p>I understand that <code>std::codecvt&lt;char16_t, char&gt;</code> in C++11 performs conversion between UTF-16 and UTF-8, and <code>std::codecvt&lt;char32_t, char&gt;</code> performs conversion between UTF-32 and UTF-8. Is it possible to convert between, say, UTF-8 and ISO 8859-1?</p>
  
  <p>Consider:</p>
  
  <pre><code>const char* s = "\u00C0";
  </code></pre>
  
  <p>If I print this string and my terminal's encoding is set to UTF-8, I will see the character <code>À</code>. If I set my terminal's encoding to ISO 8859-1, however, printing that string will not print out the desired character. How would I convert <code>s</code> into a string that, when printed, will show the character <code>À</code> if my terminal's encoding is set to ISO 8859-1?</p>
  
  <p>I understand that this can be done with a library such as iconv, but I am curious whether it can be done using only the C++ standard library. I ask this question not because I don't want to use iconv, but because I don't really understand how locales work in C++.</p>