Может ли пирамида изменить по умолчанию request.charset с utf-8 на gbk?

Я новичок в пирамиде. Я использую python2.7, MSSQL, slqalchemy.mssql и использую кодировку gbk , и у меня много старых данных. Поэтому я изменяю передний html для кодирования в gbk , используя следующий код:

 @view_config(route_name='g', renderer='json') def my_view1(request):  print 2  print request.charset  print 1  print isinstance(request.params['one'], str)  if request.params['one']:    print request.params['one']    filters = (Bzjl.one == request.params['one'])  try:    two1 = DBSession.query(Bzjl).filter(filters)  except DBAPIError:    return Response(conn_err_msg, content_type='text/plain', status_int=500)  return Response(getjson(two1)) 

Пример url: http://127.0.0.1:6543/g?one='中国福建' возвращает строк: {"records": 0, "total": 20, "rows": [], "page": 1}

Пирамида поддерживает фабрику запросов. Вы можете использовать это для декодирования запроса.

 def request_factory(environ): req = pyramid.request.Request(environ) return req.decode(charset='gbk') config.set_request_factory(request_factory) 

Это означает, что запрос, переданный внутри пирамиды, будет использовать кодировку gbk. Невозможность декодировать запрос с помощью этой кодировки приведет к исключениям UnicodeDecodeError, поэтому вы можете добавить дополнительную логику в свою фабрику запросов для обработки этих вещей.