rawrrrrrrrr
rawrrrrrrrr

Reputation: 3687

PHP function to convert unicode to special characters?

Is there a php function to handle the encodings below?

  .replaceAll("\u00c3\u0080", "À")
  .replaceAll("\u00c3\u0081", "Á")
  .replaceAll("\u00c3\u0082", "Â")
  .replaceAll("\u00c3\u0083", "Ã")
  .replaceAll("\u00c3\u0084", "Ä")
  .replaceAll("\u00c3\u0085", "Å")
  .replaceAll("\u00c3\u0086", "Æ")
  .replaceAll("\u00c3\u00a0", "à")
  .replaceAll("\u00c3\u00a1", "á")
  .replaceAll("\u00c3\u00a2", "â")
  .replaceAll("\u00c3\u00a3", "ã")
  .replaceAll("\u00c3\u00a4", "ä")
  .replaceAll("\u00c3\u00a5", "å")
  .replaceAll("\u00c3\u00a6", "æ")
  .replaceAll("\u00c3\u0087", "Ç")
  .replaceAll("\u00c3\u00a7", "ç")
  .replaceAll("\u00c3\u0090", "Ð")
  .replaceAll("\u00c3\u00b0", "ð")
  .replaceAll("\u00c3\u0088", "È")
  .replaceAll("\u00c3\u0089", "É")
  .replaceAll("\u00c3\u008a", "Ê")
  .replaceAll("\u00c3\u008b", "Ë")
  .replaceAll("\u00c3\u00a8", "è")
  .replaceAll("\u00c3\u00a9", "é")
  .replaceAll("\u00c3\u00aa", "ê")
  .replaceAll("\u00c3\u00ab", "ë")
  .replaceAll("\u00c3\u008c", "Ì")
  .replaceAll("\u00c3\u008d", "Í")
  .replaceAll("\u00c3\u008e", "Î")
  .replaceAll("\u00c3\u008f", "Ï")
  .replaceAll("\u00c3\u00ac", "ì")
  .replaceAll("\u00c3\u00ad", "í")
  .replaceAll("\u00c3\u00ae", "î")
  .replaceAll("\u00c3\u00af", "ï")
  .replaceAll("\u00c3\u0091", "Ñ")
  .replaceAll("\u00c3\u00b1", "ñ")
  .replaceAll("\u00c3\u0092", "Ò")
  .replaceAll("\u00c3\u0093", "Ó")
  .replaceAll("\u00c3\u0094", "Ô")
  .replaceAll("\u00c3\u0095", "Õ")
  .replaceAll("\u00c3\u0096", "Ö")
  .replaceAll("\u00c3\u0098", "Ø")
  .replaceAll("\u00c5\u0092", "Œ")
  .replaceAll("\u00c3\u00b2", "ò")
  .replaceAll("\u00c3\u00b3", "ó")
  .replaceAll("\u00c3\u00b4", "ô")
  .replaceAll("\u00c3\u00b5", "õ")
  .replaceAll("\u00c3\u00b6", "ö")
  .replaceAll("\u00c3\u00b8", "ø")
  .replaceAll("\u00c5\u0093", "œ")
  .replaceAll("\u00c3\u0099", "Ù")
  .replaceAll("\u00c3\u009a", "Ú")
  .replaceAll("\u00c3\u009b", "Û")
  .replaceAll("\u00c3\u009c", "Ü")
  .replaceAll("\u00c3\u00b9", "ù")
  .replaceAll("\u00c3\u00ba", "ú")
  .replaceAll("\u00c3\u00bb", "û")
  .replaceAll("\u00c3\u00bc", "ü")
  .replaceAll("\u00c3\u009d", "Ý")
  .replaceAll("\u00c5\u00b8", "Ÿ")
  .replaceAll("\u00c3\u00bd", "ý")
  .replaceAll("\u00c3\u00bf", "ÿ");

Upvotes: 11

Views: 37304

Answers (3)

Vic Seedoubleyew
Vic Seedoubleyew

Reputation: 10526

I found this to be interesting, where the previous answer was not working :

function jsonRemoveUnicodeSequences($struct) {
   return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));
}

I found it here : http://www.avoid.org/replace-u-characters-in-json-string/

Upvotes: 4

raveren
raveren

Reputation: 18523

Use strtr, it's blazing fast.

Upvotes: 2

Amber
Amber

Reputation: 526543

Try mb_convert_encoding() with the "to" encoding as 'HTML-ENTITIES', and (if necessary) the "from" encoding set to 'UTF-8' or whichever Unicode encoding you're using.

Upvotes: 17

Related Questions