diff --git a/src/calibre/utils/genshi/template/eval.py b/src/calibre/utils/genshi/template/eval.py index d9bbc846d3..0e9fae6d64 100644 --- a/src/calibre/utils/genshi/template/eval.py +++ b/src/calibre/utils/genshi/template/eval.py @@ -177,7 +177,10 @@ class Expression(Code): """ __traceback_hide__ = 'before_and_this' _globals = self._globals(data) - return eval(self.code, _globals, {'__data__': data}) + code = self.code + if not isinstance(code, unicode): + code = code.decode('utf-8', 'replace') + return eval(code, _globals, {'__data__': data}) class Suite(Code):