ФорумПрограммированиеPHP для идиотов → Как раскодировать escape js (%u0441%u0442)?

Как раскодировать escape js (%u0441%u0442)?

  • stopkran

    Сообщения: 53 Репутация: N Группа: Кто попало

    Spritz 1 апреля 2012 г. 15:08

    Наверное, глупый вопрос. Но в документации готовой функции не нашёл. В сети чего только нет: от простого перебора ('%u0430' => 'а', '%u0410' => 'А',) до решений с использованием каких-то pack() и даже preg_replace_callback()…

    Использую пока простой перебор массива с кодами (как в транслите, strtr()). Кто-нибудь использует другие способы?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 1 апреля 2012 г. 15:21, спустя 13 минут 33 секунды

    stopkran, json_decode, не?)
    Спустя 39 сек.
    ну а вообще это просто указание того что строка в ютф и код символьный прописан. сплит по маске и перебор с переводом в chr хули делов то
    Сапожник без сапог
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 1 апреля 2012 г. 23:04, спустя 7 часов 42 минуты 26 секунд

    urldecode
    rawurldecode
    Спустя 71 сек.
    есть еще такая паста

    function utf8_urldecode($str) {
    $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
    return html_entity_decode($str,null,'UTF-8');;
    }
  • stopkran

    Сообщения: 53 Репутация: N Группа: Кто попало

    Spritz 3 апреля 2012 г. 18:29, спустя 1 день 19 часов 25 минут


    есть еще такая паста


    Во! Самое то, спасибо! Только регэксп я уточнил: "/%u?([0-9a-f]+)/i", потому что могут прийти символы начала таблицы (типа %23) - они кодируются в js с двумя знаками и без 'u'.

  • stopkran

    Сообщения: 53 Репутация: N Группа: Кто попало

    Spritz 3 апреля 2012 г. 18:35, спустя 5 минут 24 секунды


    stopkran, json_decode, не?)

    нет, хочу раскодировать просто строку.

    ну а вообще это просто указание того что строка в ютф и код символьный прописан. сплит по маске и перебор с переводом в chr хули делов то


    ну, а какой функцией перевести символьный код ютф в chr?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!