This commit is contained in:
Kovid Goyal 2009-11-15 20:01:36 -07:00
parent e7620fb173
commit 338d642ec5

View File

@ -1750,10 +1750,13 @@ class OEBBook(object):
if data[:4] in ('\0\0\xfe\xff', '\xff\xfe\0\0'): if data[:4] in ('\0\0\xfe\xff', '\xff\xfe\0\0'):
bom_enc = {'\0\0\xfe\xff':'utf-32-be', bom_enc = {'\0\0\xfe\xff':'utf-32-be',
'\xff\xfe\0\0':'utf-32-le'}[data[:4]] '\xff\xfe\0\0':'utf-32-le'}[data[:4]]
data = data[4:]
elif data[:2] in ('\xff\xfe', '\xfe\xff'): elif data[:2] in ('\xff\xfe', '\xfe\xff'):
bom_enc = {'\xff\xfe':'utf-16-le', '\xfe\xff':'utf-16-be'}[data[:2]] bom_enc = {'\xff\xfe':'utf-16-le', '\xfe\xff':'utf-16-be'}[data[:2]]
data = data[2:]
elif data[:3] == '\xef\xbb\xbf': elif data[:3] == '\xef\xbb\xbf':
bom_enc = 'utf-8' bom_enc = 'utf-8'
data = data[3:]
if bom_enc is not None: if bom_enc is not None:
try: try:
return fix_data(data.decode(bom_enc)) return fix_data(data.decode(bom_enc))