diff --git a/django/views/debug.py b/django/views/debug.py index cf0b6b5a0b..717de1eb34 100644 --- a/django/views/debug.py +++ b/django/views/debug.py @@ -201,16 +201,15 @@ def _get_lines_from_file(filename, lineno, context_lines, loader=None, module_na if source is None: return None, [], None, [] - encoding=None + encoding = 'ascii' for line in source[:2]: - # File coding may be specified (and may not be UTF-8). Match - # pattern from PEP-263 (http://www.python.org/dev/peps/pep-0263/) + # File coding may be specified. Match pattern from PEP-263 + # (http://www.python.org/dev/peps/pep-0263/) match = re.search(r'coding[:=]\s*([-\w.]+)', line) if match: encoding = match.group(1) break - if encoding: - source = [unicode(sline, encoding) for sline in source] + source = [unicode(sline, encoding, 'replace') for sline in source] lower_bound = max(0, lineno - context_lines) upper_bound = lineno + context_lines