Функция PHP для преобразования Unicode в специальные символы?

Есть ли функция php для обработки кодировок ниже?

  .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", "ÿ");

Ответ 1

Попробуйте mb_convert_encoding() с кодировкой "to" как 'HTML-ENTITIES' и (при необходимости) кодировку "from", установленную на 'UTF-8' или любую кодировку Unicode, которую вы используете.

Ответ 2

Используйте strtr, он быстро вспыхивает.

Ответ 3

Я нашел это интересным, когда предыдущий ответ не работал:

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));
}

Я нашел его здесь: http://www.avoid.org/replace-u-characters-in-json-string/