diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index cf0796f..b7bd526 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -1040,7 +1040,15 @@ String::utf8_value() const if (!s) { throw invalid_error("String"); } - return s->getUTF8Val(); + if (util::is_utf16(s->val)) { + return QUtil::utf16_to_utf8(s->val); + } + if (util::is_explicit_utf8(s->val)) { + // PDF 2.0 allows UTF-8 strings when explicitly prefixed with the three-byte representation + // of U+FEFF. + return s->val.substr(3); + } + return QUtil::pdf_doc_to_utf8(s->val); } std::string diff --git a/libqpdf/QPDF_String.cc b/libqpdf/QPDF_String.cc index 1077d40..235cd79 100644 --- a/libqpdf/QPDF_String.cc +++ b/libqpdf/QPDF_String.cc @@ -150,17 +150,3 @@ QPDF_String::unparse(bool force_binary) return result; } - -std::string -QPDF_String::getUTF8Val() const -{ - if (util::is_utf16(val)) { - return QUtil::utf16_to_utf8(val); - } - if (util::is_explicit_utf8(val)) { - // PDF 2.0 allows UTF-8 strings when explicitly prefixed with the three-byte representation - // of U+FEFF. - return val.substr(3); - } - return QUtil::pdf_doc_to_utf8(val); -} diff --git a/libqpdf/qpdf/QPDFObject_private.hh b/libqpdf/qpdf/QPDFObject_private.hh index 28f97c9..ecfcf7a 100644 --- a/libqpdf/qpdf/QPDFObject_private.hh +++ b/libqpdf/qpdf/QPDFObject_private.hh @@ -269,7 +269,6 @@ class QPDF_String final static std::shared_ptr create_utf16(std::string const& utf8_val); std::string unparse(bool force_binary = false); void writeJSON(int json_version, JSON::Writer& p); - std::string getUTF8Val() const; private: QPDF_String(std::string const& val) :