cpp/poppler-global.cpp | 12 ++++++++++-- cpp/poppler-private.cpp | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-)
New commits: commit 135e897ed9a550361eb8f07a5ffedec48f079bd9 Author: Suzuki Toshiya <[email protected]> Date: Fri Dec 7 09:21:42 2018 +0100 Improve handling of UTF-16 in cpp frontend by considering Endianess diff --git a/cpp/poppler-global.cpp b/cpp/poppler-global.cpp index cc51e3d3..d84554a5 100644 --- a/cpp/poppler-global.cpp +++ b/cpp/poppler-global.cpp @@ -226,7 +226,11 @@ byte_array ustring::to_utf8() const return byte_array(); } - MiniIconv ic("UTF-8", "UTF-16"); +#ifdef WORDS_BIGENDIAN + MiniIconv ic("UTF-8", "UTF-16BE"); +#else + MiniIconv ic("UTF-8", "UTF-16LE"); +#endif if (!ic.is_valid()) { return byte_array(); } @@ -274,7 +278,11 @@ ustring ustring::from_utf8(const char *str, int len) } } - MiniIconv ic("UTF-16", "UTF-8"); +#ifdef WORDS_BIGENDIAN + MiniIconv ic("UTF-16BE", "UTF-8"); +#else + MiniIconv ic("UTF-16LE", "UTF-8"); +#endif if (!ic.is_valid()) { return ustring(); } diff --git a/cpp/poppler-private.cpp b/cpp/poppler-private.cpp index 8125da2b..04ac32c2 100644 --- a/cpp/poppler-private.cpp +++ b/cpp/poppler-private.cpp @@ -93,7 +93,7 @@ ustring detail::unicode_GooString_to_ustring(const GooString *str) ustring detail::unicode_to_ustring(const Unicode *u, int length) { - ustring str(length * 2, 0); + ustring str(length, 0); ustring::iterator it = str.begin(); const Unicode *uu = u; for (int i = 0; i < length; ++i) { _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
