From 04edfe9fade7e77342f5e4fe694ee071554a119c Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 23 Jan 2021 17:58:23 -0500 Subject: QPDFObjectHandle::newUnicodeString to uses UTF-16 only when needed Use the first of ASCII, PDFDocEncoding, or UTF-16 that is capable of encoding the string. --- libqpdf/QPDF_String.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libqpdf') diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc index 5558979c..8f10b977 100644 --- a/libqpdf/QPDF_String.cc +++ b/libqpdf/QPDF_String.cc @@ -31,7 +31,13 @@ QPDF_String::~QPDF_String() QPDF_String* QPDF_String::new_utf16(std::string const& utf8_val) { - return new QPDF_String(QUtil::utf8_to_utf16(utf8_val)); + std::string result; + if (! (QUtil::utf8_to_ascii(utf8_val, result, '?') || + QUtil::utf8_to_pdf_doc(utf8_val, result, '?'))) + { + result = QUtil::utf8_to_utf16(utf8_val); + } + return new QPDF_String(result); } std::string -- cgit v1.2.3-54-g00ecf