Вы можете использовать, чтобы символы ASCII были первыми 128, поэтому получите номер каждого символа с помощью ord
и удалите его, если он выходит за пределы
# -*- coding: utf-8 -*-
def strip_non_ascii(string):
''' Returns the string without non ASCII characters'''
stripped = (c for c in string if 0 < ord(c) < 127)
return ''.join(stripped)
test = u'éáé123456tgreáé@€'
print test
print strip_non_ascii(test)
Результат
éáé123456tgreáé@€
123456tgre@
Обратите внимание, что @
включено, потому что, в конце концов, это символ ASCII. Если вы хотите удалить определенное подмножество (например, цифры, прописные и строчные буквы), вы можете ограничить диапазон, взглянув на таблицу ASCII
РЕДАКТИРОВАНИЕ: После прочтения вашего вопроса, возможно, вам нужно экранировать свой HTML-код, чтобы все эти символы правильно отображались после визуализации. Вы можете использовать фильтр escape
в своих шаблонах.