@@ -112,18 +112,19 @@ def highlight_content(content, query):
112 if content.find('<') != -1:
112 if content.find('<') != -1:
113 return content
113 return content
115+ query = query.decode('utf-8')
115 if content.lower().find(query.lower()) > -1:
116 if content.lower().find(query.lower()) > -1:
116− query_regex = '({0})'.format(re.escape(query))
117+ query_regex = u'({0})'.format(re.escape(query))
117− content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
118+ content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I | re.U)
119 regex_parts = []
120 regex_parts = []
120 for chunk in query.split():
121 for chunk in query.split():
121 if len(chunk) == 1:
122 if len(chunk) == 1:
122− regex_parts.append('\W+{0}\W+'.format(re.escape(chunk)))
123+ regex_parts.append(u'\W+{0}\W+'.format(re.escape(chunk)))
124− regex_parts.append('{0}'.format(re.escape(chunk)))
125+ regex_parts.append(u'{0}'.format(re.escape(chunk)))
125− query_regex = '({0})'.format('|'.join(regex_parts))
126+ query_regex = u'({0})'.format('|'.join(regex_parts))
126− content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
127+ content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I | re.U)
128 return content
129 return content