Задать вопрос
@Tutucu

Почему не преобразуется строка в UTF-8 из ASCII?

Здравствуйте, нужно предать строку сервису по рассылке SMS.
$user_email = "$email";
        $user_name = mb_convert_encoding(urlencode($name), "UTF-8", mb_detect_encoding($user_name));
        $user_lists = 8988615;
        echo mb_detect_encoding($user_name);
        echo mb_detect_encoding($name);
        echo mb_detect_encoding(urlencode($name));
        echo $name;
        echo $user_name;
        // Создаём GET-запрос
        $api_url = "https://api.unisender.com/ru/api/subscribe?format=json".
                   "&api_key=$api_key&list_ids=$user_lists".
                   "&fields[email]=$user_email&fields[Name]=$user_name";
                    //Работает

        // Делаем запрос на API-сервер
        $result = file_get_contents($api_url);


Всё отправляется, но если в поле Name - русские буквы, то возвращаются кракозябры. При помощи echo вывел значения всех переменных, а так же их формат кодирования. Получается следующее - сначал методом POST на страницу приходит UTF-8, но после преобразования urlencode() получается формат ASCII при этом mb_converted - не помогает. Результат echo для верхнего кода:
ASCII
UTF-8
ASCII
Алексей
%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9

В чём проблема? Уже сижу 3 часа над этим.
  • Вопрос задан
  • 221 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
Сложно сказать! Только такие варианты есть :
Посмотреть фаил .htaccess и там выставить utf8 без бум
в mysql посмотреть нет ли сравнения таблицы с другим форматом
или попробуй написать UTF-8 -> UTF8
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы