Это не ошибка.Оба являются действительными кодировками HTML.Вы можете убедиться в этом, расшифровав их на этом веб-сайте .
. Разница в том, что строка из IOS также содержит кодировку специальных символов HTML (например, <
), но строка рабочего стола делает это.не.Чтобы решить эту проблему, ваше приложение должно сначала выполнить URL-декодирование входной строки, а затем декодировать специальные символы HTML.
В результате получаются следующие результаты:
- Рабочий стол: <# C02MKG1LH | xsd>
- IOS: <# C02MKG1LH | xsd>
Вот пример кода, который будет правильно декодировать обе строки в PHP:
<?php
function decodeInputString($input)
{
return htmlspecialchars_decode(urldecode($input));
}
$desktop = "%3C%23C02MKG1LH%7Cxsd%3E";
$ios = "%26lt%3B%23C02MKG1LH%7Cxsd%26gt%3B";
$desktop_plain = decodeInputString($desktop);
$ios_plain = decodeInputString($ios);
var_dump($desktop_plain);
var_dump($ios_plain);