mod_python
mod_python copied to clipboard
parse_qsl problems
Hi, It seems there is something wrong with parse_qsl function from .src/_apachemodule.c For this code:
from mod_python import apache
from mod_python import util
def index(req):
apache.log_error('args: {}'.format(req.args))
apache.log_error('parse_qsl: {}'.format(util.parse_qsl(req.args)))
req.content_type = "text/plain"
return "pong\n"
I get:
[Wed Jun 08 11:09:01.207959 2022] [:error] [pid 18:tid 140612959446784] args: x=10&y=20
[Wed Jun 08 11:09:01.207974 2022] [:error] [pid 18:tid 140612959446784] parse_qsl: [('10', '10'), ('20', '20')]
instead of:
parse_qsl: [('x', '10'), ('y', '20')]
Try converting to bytes and back. I find I need:
query = util.parse_qs(req.args.encode(encoding='utf-8'))
newquery = {}
for q in query:
val = query[q][0].decode('utf-8')1
newquery[q.decode('utf-8')] = [val]
query = newquery