Итак, я столкнулся с проблемой с функцией rawurlencode в PHP.Все текстовые поля в нашем веб-приложении, конечно, преобразуются перед их обработкой веб-сервером, и для этого мы использовали rawurlencode.Это прекрасно работает практически со всеми найденными мною персонажами, за исключением знака «£».Теперь у наших пользователей нет причин вводить знак фунта, но они могут, поэтому я хочу позаботиться об этом.
Проблема в том, что rawurlencode не кодирует знак фунта, введенный навеб-страница как% A3, но вместо этого как% C2% A3.Еще хуже, если пользователь не смог ввести еще один бит критической информации (что приводит к обновлению веб-страницы - проверки выполняются на стороне сервера - и попытаться заполнить поля формы информацией, которую использовал пользователь), то когда% C2 запускается через rawurldecode / encode, он становится Ã?- иначе,% C3?И, конечно же, «£» также превращается в другой £!
Итак, что вызывает это?Я предполагаю, что это проблема кодировки символов, но я не настолько осведомлен об этих вещах.Я где-то слышал, что я могу кодировать £ как £ вручную, но зачем мне это делать, когда база данных может обрабатывать «£», и для знака фунта есть процентное кодирование?Это ошибка в rawurlencode или ошибка, вызванная различными наборами символов?
Спасибо за любую помощь.