Я использую mod_perl2 для веб-сайта и использую CGI :: Apache2 :: Wrapper, чтобы получить параметры запроса для страницы (например, данные для публикации). Я заметил, что строка, возвращаемая функцией $ req-> param ("parameter"), не является UTF-8. Если я использую строку as-is, я могу закончить искаженные результаты, поэтому мне нужно ее декодировать с помощью Encode :: decode_utf8(). Есть ли какой-либо способ либо получить параметры, уже декодированные в строки UTF-8, либо выполнить петлю через параметры и безопасно декодировать их?Получение параметров строки запроса UTF-8 в mod_perl2
ответ
Чтобы получить параметры уже декодируется, мы должны переопределить поведение базового класса Apache2::Request
от libapreq2, таким образом, теряет свою скорость XS преимущество. Но это даже не просто возможным, так как, к сожалению, мы сорваны CGI::Apache2::Wrapper
конструктор:
unless (defined $r and ref($r) and ref($r) eq 'Apache2::RequestRec') {
Это неправильно ориентированное программирование, он должен сказать
… $r->isa('Apache2::RequestRec')
или, возможно, отказаться от названия класса в целом и просто тест для поведения (… $r->can('param')
).
Я говорю, что с этими препятствиями это не стоит. Я рекомендую сохранить существующее решение, которое явно декодирует параметры. Это достаточно ясно.
Чтобы запрограммировать параметры запроса, просто не передавайте аргумент методу param
и вы получаете список имен. Это документировано (1, 2), пожалуйста, прочитайте более внимательно.
- 1. Получение двух параметров строки запроса
- 2. Получение параметров строки запроса в управляемых компонентах
- 3. Получение параметров запроса запроса
- 4. Получение нескольких параметров строки запроса Экспресс 4
- 5. Получение параметров строки запроса из url в UIWebView в Swift?
- 6. изменение параметров строки запроса
- 7. Получение параметров из строки запроса в Zend Framework 2.3
- 8. Получение параметров запроса на Slim
- 9. Изменить запрос POST в mod_perl2
- 10. Обработка ошибок для параметров строки запроса -1% 27, получение бомбардировки
- 11. Вызывает не получение всех параметров строки запроса с помощью curl
- 12. Получение параметров из строки запроса не работает ... Javascript
- 13. PHP Regex - Получение параметров строки запроса из переписанного URL
- 14. Получение всех параметров запроса в Symfony 2
- 15. Получение параметров запроса HTTP в лифте
- 16. Динамическое добавление параметров строки запроса
- 17. Пояснение параметров строки запроса SVG
- 18. Получение строки запроса в Python
- 19. Получение строки запроса в PHP
- 20. Сохранение параметров строки запроса в cookie сеанса
- 21. кодирование параметров строки запроса в IE10
- 22. Как избежать параметров строки запроса в MVC
- 23. Получение параметров командной строки в интерпретаторе Lua
- 24. Преобразование строки в UTF8
- 25. Преобразование строки в UTF8
- 26. Java 8: Получение селективного запроса параметров
- 27. Получение параметров запроса из Spring WS Interceptor
- 28. Получение параметров запроса от Ajax Response
- 29. Получение типов параметров из параметризованного динамического запроса
- 30. Получение параметров запроса из URL, не имеющие имен параметров
Спасибо, это в значительной степени подтвердило то, чего я боялся. Моя первоначальная мысль заключалась в том, чтобы использовать $ req-> param() для получения таблицы и прокрутки параметров там. Я мог бы получить объект таблицы для параметров, но когда я попытался установить какой-либо параметр, он ошибся, сказав, что STORE не был реализован. – 2010-12-03 04:22:53