title: Choosing encoding for icu::UnicodeString
body: <p>I found myself in need of a way to change a string to lower case that was safe to use for ASCII and for UTF16-LE (as found in some windows registry strings) and came across this question: <a href="https://stackoverflow.com/questions/313970/how-to-convert-stdstring-to-lower-case">How to convert std::string to lower case?</a></p>
  
  <p>The answer that seemed to be the "most correct" to me (I'm not using Boost) was one that <a href="https://stackoverflow.com/a/24063783/138906">demonstrated using the icu library</a>.</p>
  
  <p>In this answer, he specified the encoding "ISO-8859-1" for the UnicodeString constructor.  Why is this the correct value and how do I know what to use?</p>
  
  <p>ISO-8859-1 has worked for the few unit tests I've run against ASCII encoded strings that used only Latin characters, but I don't like using it if I don't know why.</p>
  
  <p>If it matters, I'm mainly concerned with manipulating English data that is typically stored in ASCII, but the windows registry has the ability to store things in UTF-16LE and I don't want to block myself from supporting other languages down the road by littering my code with non-unicode safe stuff.</p>