From 2a32abf93369592e06d296fc10360063af547351 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 31 Jan 2015 00:08:01 +0530 Subject: [PATCH] PDF Output: Fix incorrect encoding for some chinese characters in the PDF Outline (Table of Contents). Fixes #1416222 [Incorrect TOC entries in PDF files converted from Chinese EPUB file](https://bugs.launchpad.net/calibre/+bug/1416222) --- src/calibre/ebooks/pdf/render/common.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/calibre/ebooks/pdf/render/common.py b/src/calibre/ebooks/pdf/render/common.py index f00e13639f..b351ce5c08 100644 --- a/src/calibre/ebooks/pdf/render/common.py +++ b/src/calibre/ebooks/pdf/render/common.py @@ -128,8 +128,7 @@ class String(unicode): class UTF16String(unicode): def pdf_serialize(self, stream): - s = self.replace('\\', '\\\\') - raw = codecs.BOM_UTF16_BE + s.encode('utf-16-be') + raw = codecs.BOM_UTF16_BE + self.encode('utf-16-be').replace(b'\\', b'\\\\') stream.write(b'('+escape_unbalanced_parantheses(raw)+b')') class Dictionary(dict):