From e60d72753e507ac400e19bdec4907d52940848e6 Mon Sep 17 00:00:00 2001 From: GRiker Date: Sun, 5 Sep 2010 09:03:24 -0700 Subject: [PATCH] GR TOC bug fix utf-8 > latin_1 --- src/calibre/ebooks/mobi/writer.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index 410bf6e789..856c6b4728 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -1695,12 +1695,11 @@ class MobiWriter(object): header.write(pack('>I', 1)) # 0x1c - 0x1f : Text encoding ? - # header.write(pack('>I', 650001)) - # GR: This needs to be either 0xFDE9 or 0x4E4 - header.write(pack('>I', 0xFDE9)) + # GR: Language encoding for NCX entries (latin_1) + header.write(pack('>I', 0x4e4)) - # 0x20 - 0x23 : Language code? - header.write(iana2mobi(str(self._oeb.metadata.language[0]))) + # 0x20 - 0x23 : Mimicking kindleGen + header.write(pack('>I', 0xFFFFFFFF)) # 0x24 - 0x27 : Number of TOC entries in INDX1 header.write(pack('>I', indxt_count + 1)) @@ -1799,9 +1798,9 @@ class MobiWriter(object): text = text.strip() if not isinstance(text, unicode): text = text.decode('utf-8', 'replace') - text = text.encode('utf-8') + text = text.encode('cp1252','replace') else : - text = "(none)".encode('utf-8') + text = text.encode('cp1252') return text def _add_to_ctoc(self, ctoc_str, record_offset):