# Remove Accept-Charset
del opener.addheaders[-1]
- infile = open(fname, 'rt')
- content = infile.read()
- infile.close()
-
+ possible_encodings = []
+ for encoding in (
+ bookmark.charset,
+ sys.getfilesystemencoding(),
+ 'utf-8',
+ ):
+ if encoding and encoding not in possible_encodings:
+ possible_encodings.append(encoding)
+ content = None
+ for encoding in possible_encodings:
+ infile = open(fname, 'rt', encoding=encoding)
+ try:
+ content = infile.read()
+ except UnicodeDecodeError:
+ infile.close()
+ continue
+ else:
+ break
+ infile.close()
+
+ if content is None:
+ return (
+ 'ERROR: File encoding was not recognized',
+ None, None, None, None
+ )
return None, None, None, headers, content
except RedirectException as e: