@@ -120,8 +120,10 @@ def index():
120120 search.paging = True
121121 if search.request_data.get('format', 'html') == 'html':
122122 if 'content' in result:
123− result['content'] = highlight_content(result['content'], search.query)
124− result['title'] = highlight_content(result['title'], search.query)
123+ result['content'] = highlight_content(result['content'],
124+ search.query.encode('utf-8')) # noqa
125+ result['title'] = highlight_content(result['title'],
126+ search.query.encode('utf-8'))
125127 else:
126128 if 'content' in result:
127129 result['content'] = html_to_text(result['content']).strip()
@@ -139,7 +141,8 @@ def index():
139141 result['favicon'] = engine
140142
141143 if search.request_data.get('format') == 'json':
142− return Response(json.dumps({'query': search.query, 'results': search.results}),
144+ return Response(json.dumps({'query': search.query,
145+ 'results': search.results}),
143146 mimetype='application/json')
144147 elif search.request_data.get('format') == 'csv':
145148 csv = UnicodeWriter(cStringIO.StringIO())
@@ -151,8 +154,8 @@ def index():
151154 csv.writerow([row.get(key, '') for key in keys])
152155 csv.stream.seek(0)
153156 response = Response(csv.stream.read(), mimetype='application/csv')
154− content_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search.query)
155− response.headers.add('Content-Disposition', content_disp)
157+ cont_disp = 'attachment;Filename=searx_-_{0}.csv'.format(search.query)
158+ response.headers.add('Content-Disposition', cont_disp)
156159 return response
157160 elif search.request_data.get('format') == 'rss':
158161 response_rss = render(