diff options
author | Jay Berkenbilt <ejb@ql.org> | 2023-12-21 23:14:28 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2023-12-21 23:43:29 +0100 |
commit | 4400ce84eeb204cdcb35950dd8fde094fc249051 (patch) | |
tree | 2a60ae462f22d21b35214a3fdaa4af5d63f8b149 /libqpdf/QPDF_Name.cc | |
parent | bb12a7ff8df1582a2cb0583bc463a84f5a736219 (diff) | |
download | qpdf-4400ce84eeb204cdcb35950dd8fde094fc249051.tar.zst |
Add "n:/pdf-name" to qpdf JSON for binary names (fixes #1072)
Diffstat (limited to 'libqpdf/QPDF_Name.cc')
-rw-r--r-- | libqpdf/QPDF_Name.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libqpdf/QPDF_Name.cc b/libqpdf/QPDF_Name.cc index 4597372e..5fde9c65 100644 --- a/libqpdf/QPDF_Name.cc +++ b/libqpdf/QPDF_Name.cc @@ -57,6 +57,14 @@ QPDF_Name::getJSON(int json_version) if (json_version == 1) { return JSON::makeString(normalizeName(this->name)); } else { - return JSON::makeString(this->name); + bool has_8bit_chars; + bool is_valid_utf8; + bool is_utf16; + QUtil::analyze_encoding(this->name, has_8bit_chars, is_valid_utf8, is_utf16); + if (!has_8bit_chars || is_valid_utf8) { + return JSON::makeString(this->name); + } else { + return JSON::makeString("n:" + normalizeName(this->name)); + } } } |