X-Git-Url: https://vaikene.ee/gitweb/pswgen09.html?a=blobdiff_plain;f=src%2Flibs%2FCommon%2Futil.h;h=62a2e99a54d8ba2d5b17cffe4425f7afa8e7bac2;hb=4c0329c5c2690bde28212c89029015a5da4c7e34;hp=de094b3e791d85ef6caec890a532f521709e1617;hpb=926606ce83f3a702d67c5c2c42478b091f78fdc4;p=evaf diff --git a/src/libs/Common/util.h b/src/libs/Common/util.h index de094b3..62a2e99 100644 --- a/src/libs/Common/util.h +++ b/src/libs/Common/util.h @@ -3,7 +3,7 @@ * @brief Global utility functions for eVaf * @author Enar Vaikene * - * Copyright (c) 2011 Enar Vaikene + * Copyright (c) 2011-2019 Enar Vaikene * * This file is part of the eVaf C++ cross-platform application development framework. * @@ -70,8 +70,10 @@ inline bool isFalse(QString const & str) * @li QVariant::Int - base 10 is used; * @li QVariant::Double - the decimal point is expecte to be '.' regardless which locale is used; * @li QVariant::Bool - tries to use isTrue() and isFalse() methods; otherwise performs a conversion to QVariant::uint; - * @li QVariant::Char - if the string begins with "\0x", expects it to be an ASCII code in hex; if the - * string begins with "\0", expects it to be an ASCII code in oct; otherwise uses the first character in the string; + * @li QVariant::Char - if the string begins with "\0x", expects it to be a UTF-16 code in hex; if the + * string begins with "\0", expects it to be a UTF-16 code in oct; if the string begins with "&", expects it to + * be a numeric character reference ("&#nnnn;" or "&#xhhhh;") or a predefined character entity reference; + * otherwise uses the first character in the string; */ COMMON_EXPORT QVariant toVariant(QString const & value, QVariant const & defaultValue); @@ -83,20 +85,46 @@ COMMON_EXPORT QVariant toVariant(QString const & value, QVariant const & default * * This function converts a unicode (or any) string to the escaped 7-bit character array. Characters that cannot * be output directly as a printable 7-bit character are output as numeric character references. The result can be - * directly inserted into XML or HTML documents and later converted back with the eVaf::Common::fromEscapedString() + * directly inserted into XML or HTML documents and later converted back with the eVaf::Common::strFromEscapedCharArray() * function. + * + * For example, "Groß" becomes "Groß". */ -COMMON_EXPORT QByteArray toEscapedString(QString const & str); +COMMON_EXPORT QByteArray strToEscapedCharArray(QString const & str); /** * Converts escaped 7-bit character arrays to unicode string. * @param str Escaped 7-bit character array * @return Unicode string * - * This function converts an escaped 7-bit character array to a unicode string. Numeric character references and + * This function converts an escaped 7-bit character array to the unicode string. Numeric character references and * character entity references are expanded to actual unicode characters. */ -COMMON_EXPORT QString fromEscapedString(QByteArray const & str); +COMMON_EXPORT QString strFromEscapedCharArray(QByteArray const & str); + +/** + * Converts binary arrays to escaped 7-bit character arrays + * @param src Binary array + * @return Escaped 7-bit character array + * + * This function converts a binary array to the escaped 7-bit character array. Bytes that cannot be output + * directly as printable 7-bit characters are output as numeric character references. The result can be directly + * inserted into XML or HTML documents and later converted back with the eVaf::Common::binFromEscapedCharArray() + * function. + * + * For example, "Hello\r\n" becomes "Hello ". + */ +COMMON_EXPORT QByteArray binToEscapedCharArray(QByteArray const & src); + +/** + * Converts escaped 7-bit character arrays to binary arrays + * @param str Escaped 7-bit character array + * @return Binary array + * + * This function converts an escaped 7-bit character array to the binary array. Numeric character references and + * character entoty references are expanded to characters and binary bytes. + */ +COMMON_EXPORT QByteArray binFromEscapedCharArray(QByteArray const & str); } // namespace eVaf::Common } // namespace eVaf