diff --git a/src/calibre/ebooks/lit/writer.py b/src/calibre/ebooks/lit/writer.py index 5026c9e267..52957acb92 100644 --- a/src/calibre/ebooks/lit/writer.py +++ b/src/calibre/ebooks/lit/writer.py @@ -474,7 +474,7 @@ class LitWriter(object): name = '/data/' + item.id data = item.data secnum = 0 - if not isinstance(data, basestring): + if isinstance(data, etree._Element): self._add_folder(name) rebin = ReBinary(data, item, self._oeb, map=HTML_MAP) self._add_file(name + '/ahc', rebin.ahc, 0) @@ -483,6 +483,8 @@ class LitWriter(object): data = rebin.content name = name + '/content' secnum = 1 + elif isinstance(data, unicode): + data = data.encode('utf-8') self._add_file(name, data, secnum) item.size = len(data) diff --git a/src/calibre/ebooks/oeb/stylizer.py b/src/calibre/ebooks/oeb/stylizer.py index 34f3293c32..e4a0cfd7fe 100644 --- a/src/calibre/ebooks/oeb/stylizer.py +++ b/src/calibre/ebooks/oeb/stylizer.py @@ -173,7 +173,7 @@ class Stylizer(object): return (None, None) data = hrefs[path].data data = XHTML_CSS_NAMESPACE + data - return (None, data) + return ('utf-8', data) def flatten_rule(self, rule, href, index): results = [] diff --git a/src/cssutils/util.py b/src/cssutils/util.py index f2845de590..7b5b9b3857 100644 --- a/src/cssutils/util.py +++ b/src/cssutils/util.py @@ -840,7 +840,9 @@ def _readUrl(url, fetcher=None, overrideEncoding=None, parentEncoding=None): try: # encoding may still be wrong if encoding *is lying*! - if content is not None: + if isinstance(content, unicode): + decodedCssText = content + elif content is not None: decodedCssText = codecs.lookup("css")[1](content, encoding=encoding)[0] else: decodedCssText = None