From b7872873dd10cbf1085bca78556b27dbba0c9378 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 31 Jul 2009 15:57:13 -0600 Subject: [PATCH] Fix #3022 (Receiving error during convert from pdf to any file) --- src/calibre/__init__.py | 8 +++++--- src/calibre/ebooks/mobi/writer.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/__init__.py b/src/calibre/__init__.py index b455c55553..5cdf03888a 100644 --- a/src/calibre/__init__.py +++ b/src/calibre/__init__.py @@ -114,9 +114,11 @@ def prints(*args, **kwargs): raise arg = repr(arg) if not isinstance(arg, str): - arg = str(arg) - if not isinstance(arg, unicode): - arg = arg.decode(preferred_encoding, 'replace') + try: + arg = str(arg) + except ValueError: + arg = unicode(arg) + if isinstance(arg, unicode): try: arg = arg.encode(enc) except UnicodeEncodeError: diff --git a/src/calibre/ebooks/mobi/writer.py b/src/calibre/ebooks/mobi/writer.py index 0a305dbe1c..d1b4076cd9 100644 --- a/src/calibre/ebooks/mobi/writer.py +++ b/src/calibre/ebooks/mobi/writer.py @@ -1972,7 +1972,7 @@ class MobiWriter(object): continue if h not in self._id_offsets: self._oeb.logger.warn(' Ignoring missing TOC entry:', - child) + unicode(child)) continue currentOffset = self._id_offsets[h]