forked from VimPlug/jedi
Make sure that the encoding parameters are always right.
This commit is contained in:
@@ -128,8 +128,8 @@ def source_to_unicode(source, encoding=None):
|
|||||||
# UTF-8 byte-order mark
|
# UTF-8 byte-order mark
|
||||||
return 'utf-8'
|
return 'utf-8'
|
||||||
|
|
||||||
first_two_lines = re.match(r'(?:[^\n]*\n){0,2}', source.decode('iso-8859-1')).group(0)
|
first_two_lines = re.match(br'(?:[^\n]*\n){0,2}', source).group(0)
|
||||||
possible_encoding = re.search(r"coding[=:]\s*([-\w.]+)",
|
possible_encoding = re.search(br"coding[=:]\s*([-\w.]+)",
|
||||||
first_two_lines)
|
first_two_lines)
|
||||||
if possible_encoding:
|
if possible_encoding:
|
||||||
return possible_encoding.group(1)
|
return possible_encoding.group(1)
|
||||||
@@ -141,8 +141,11 @@ def source_to_unicode(source, encoding=None):
|
|||||||
# only cast str/bytes
|
# only cast str/bytes
|
||||||
return source
|
return source
|
||||||
|
|
||||||
|
encoding = detect_encoding()
|
||||||
|
if not isinstance(encoding, unicode):
|
||||||
|
encoding = unicode(encoding, 'utf-8', 'replace')
|
||||||
# cast to unicode by default
|
# cast to unicode by default
|
||||||
return unicode(source, detect_encoding(), 'replace')
|
return unicode(source, encoding, 'replace')
|
||||||
|
|
||||||
|
|
||||||
def splitlines(string):
|
def splitlines(string):
|
||||||
|
|||||||
Reference in New Issue
Block a user