title: Convert Unicode surrogate pair to literal string
body: <p>I am trying to read a high Unicode character from one string into another. For brevity, I will simplify my code as shown below:</p>
  
  <pre><code>public static void UnicodeTest()
  {
      var highUnicodeChar = ""; //Not the standard A
  
      var result1 = highUnicodeChar; //this works
      var result2 = highUnicodeChar[0].ToString(); // returns \ud835
  }
  </code></pre>
  
  <p>When I assign <code>highUnicodeChar</code> to <code>result1</code> directly, it retains its literal value of <code></code>. When I try to access it by index, it returns <code>\ud835</code>. As I understand it, this is a surrogate pair of UTF-16 characters used to represent a UTF-32 character. I am pretty sure this problem has to do with trying to implicitly convert a <code>char</code> to a <code>string</code>.</p>
  
  <p>In the end, I want <code>result2</code> to yield the same value as <code>result1</code>. How can I do this?</p>