title: PHP Curly Quote Character Encoding Issue
body: <p>I know there is an age-old issue with character encoding between different characters sets, but I'm stuck on one related to Window's "curly quotes".</p>
  
  <p>We have a client that likes to copy-and-paste data into a text field and then post it out onto our app. That data will often have curly quotes in it. I used to use the following transform them into their normal counterparts:</p>
  
  <pre><code>function convert_smart_quotes($string)  { 
  
  $badwordchars=array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6");
  
  $fixedwordchars=array("'", "'", '"', '"', '-', '--', '...');
  
  return str_replace($badwordchars,$fixedwordchars,$string); 
  
  }
  </code></pre>
  
  <p>This worked great for a few months. Then after some changes (we switches servers, made updates to the system, upgraded PHP, etc., etc.) we learned it doesn't work anymore. So, I take a look and I learn that the "curly quotes" are all changing into a different characters. In this case, they're turning into the following:</p>
  
  <p>“ = ¡È</p>
  
  <p>” = ¡É</p>
  
  <p>‘ = ¡Æ</p>
  
  <p>’ = ¡Ç</p>
  
  <p>These characters then show up as the cursed "black diamond-question mark symbols" when saved in the database.  The mySQL database is in latin1_swedish_ci as is the app the messages are received on. So, although I know utf-8 is better, it has to remain in latin1_swedish_ci, or ISO-8859-1, or else we'll have to rebuild everything... and that's out of the question.</p>
  
  <p>My webpage, and form, are both posting in utf-8. If I change it to be in ISO-8859-1, the quotes become question marks instead.</p>
  
  <p>I have tried searching the string for occurrences of "¡È" or "¡É" and replacing them with normal quotes, but I couldn't get that to work. I did it by adding the following to my above function:</p>
  
  <pre><code>$string = str_replace("xa1\xc8", '"', $string);
  $string = str_replace("xa1\xc9", '"', $string);
  $string = str_replace("xa1\xc6", "'", $string);
  $string = str_replace("xa1\xc7", "'", $string);
  </code></pre>
  
  <p>I've been stuck on this for a couple hours now and haven't been able to find any real help online. As you can imagine, googleing "¡É" doesn't bring a very specific response. </p>
  
  <p>Any guidance is appreciated!</p>