Расшифруйте пользовательский ввод с помощью специальных символов - PullRequest
0 голосов
/ 22 июля 2011

У меня есть поисковый скрипт, где пользователь вводит некоторые слова запроса, которые отправляются с помощью GET. Если пользовательский ввод содержит специальные символы, например äpple URL становится search.php?q=äpple и все работает нормально. Но если пользователь перезапустит этот URL search.php?q=äpple, в поле адреса браузера отобразится search.php?q=%E4pple, и запрос не будет выполнен. Как я должен декодировать эту строку. urldecode не работает. Я думал, что это именно то, что было, так что-то еще не так? Или какие другие функции я могу попробовать?

UPDATE если я использую utf8_encode на search.php?q=%E4pple, то получится правильный ä char, но если строка в url отправлена ​​GET и, следовательно, правильно (и работает) ä, utf8_encode все испортит.

Полагаю, я могу поставить условие, если проверю кодировку, прежде чем что-то делать, но разве это не проще ??

1 Ответ

0 голосов
/ 22 июля 2011

Решил, проверив кодировку $ _GET ['q'] и обработав ее соответствующим образом для результата проверки кодирования.См. http://php.net/manual/en/function.utf8-encode.php для функций, которые проверяют кодирование.

...