Почему мой PHP-код urlencode не работает в качестве примеров в Интернете?

Почему мой urlencode() производить что-то другое, чем я ожидал?

Возможно, мои ожидания ошибочны, но тогда я был бы еще более озадачен.

пример

urlencode("ä");

expectations = returns %C3%A4

reality = returns %E4

Где я ошибся в своих ожиданиях? Кажется, это связано с кодированием. Но я не очень знаком с тем, что я должен делать / использовать.

Должен ли я что-то изменить на своем сервере, чтобы функция использовала правильную кодировку?

0

Решение

urlencode кодирует необработанные байты в вашей строке в процентное представление. Если вы ожидаете %C3%A4 это означает, что вы ожидаете UTF-8-байтовое представление «ä». Если вы получаете %E4 это означает, что ваша строка на самом деле вместо этого кодируется в ISO-8859-1.

Кодируйте вашу строку в UTF-8, чтобы получить ожидаемый результат. Как это сделать, зависит от того, откуда эта строка. Если это строковый литерал в вашем файле исходного кода, сохраните файл как UTF-8 в вашем текстовом редакторе. Если это происходит из базы данных, см. UTF-8 полностью.

Для получения дополнительной информации см. Что каждый программист абсолютно, положительно должен знать о кодировках и наборах символов для работы с текстом.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector