title: Why is json_decode returning weird characters?
body: <p>Why does the following code:
      var_dump(json_decode('"\u201A"'));
      echo json_decode('"\u201A"');</p>
  
  <p>Print out:</p>
  
  <pre><code>string(3) "â€š"
  â€š
  </code></pre>
  
  <p>Instead of:</p>
  
  <pre><code>string(1) "‚"
  ‚
  </code></pre>
  
  <p><a href="http://www.fileformat.info/info/unicode/char/201a/index.htm" rel="nofollow">Here</a> is the link to the unicode page.</p>
  
  <p>Furthermore, this could not be a browser display issue: note how the PHP output says that there are three characters.</p>
  
  <p>Furthermore:</p>
  
  <pre><code>var_dump(str_split(json_decode('"\u201A"')));
  </code></pre>
  
  <p>Outputs:</p>
  
  <pre><code>array(3) {
    [0]=&gt;
    string(1) "â"
    [1]=&gt;
    string(1) "€"
    [2]=&gt;
    string(1) "š"
  }
  </code></pre>
  
  <p>In context:</p>
  
  <pre><code>$unicodeChar = '\u201A';
  $value = str_replace(json_decode('"'.$unicodeChar.'"'), ',', $value);
  </code></pre>
  
  <p>isn't replacing the unicode character with the real one. Why?</p>