1
0
forked from VimPlug/jedi

Make sure that the encoding parameters are always right.

This commit is contained in:
Dave Halter
2016-07-30 03:34:24 +02:00
parent 454c8de7b1
commit 15221bc8f5

View File

@@ -128,8 +128,8 @@ def source_to_unicode(source, encoding=None):
# UTF-8 byte-order mark
return 'utf-8'
first_two_lines = re.match(r'(?:[^\n]*\n){0,2}', source.decode('iso-8859-1')).group(0)
possible_encoding = re.search(r"coding[=:]\s*([-\w.]+)",
first_two_lines = re.match(br'(?:[^\n]*\n){0,2}', source).group(0)
possible_encoding = re.search(br"coding[=:]\s*([-\w.]+)",
first_two_lines)
if possible_encoding:
return possible_encoding.group(1)
@@ -141,8 +141,11 @@ def source_to_unicode(source, encoding=None):
# only cast str/bytes
return source
encoding = detect_encoding()
if not isinstance(encoding, unicode):
encoding = unicode(encoding, 'utf-8', 'replace')
# cast to unicode by default
return unicode(source, detect_encoding(), 'replace')
return unicode(source, encoding, 'replace')
def splitlines(string):