From 02281632ccbba3ef00a6968bfd697f4be836d0dd Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 3 Jan 2019 20:03:30 -0500 Subject: Add QUtil::utf8_to_ascii --- libqpdf/QUtil.cc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'libqpdf') diff --git a/libqpdf/QUtil.cc b/libqpdf/QUtil.cc index 44ffec7f..7c2d9bc9 100644 --- a/libqpdf/QUtil.cc +++ b/libqpdf/QUtil.cc @@ -892,3 +892,26 @@ QUtil::parse_numrange(char const* range, int max) } return result; } + +std::string +QUtil::utf8_to_ascii(std::string const& utf8, char unknown_char) +{ + std::string ascii_value; + for (size_t i = 0; i < utf8.length(); ++i) + { + unsigned char ch = static_cast(utf8.at(i)); + if (ch < 128) + { + ascii_value.append(1, ch); + } + else if ((ch & 0xc0) == 0x80) + { + // Ignore subsequent byte of UTF-8 encoded character + } + else + { + ascii_value.append(1, unknown_char); + } + } + return ascii_value; +} -- cgit v1.2.3-54-g00ecf