34 #ifndef BLOCXX_ICONV_HPP_INCLUDE_GUARD_HPP_
35 #define BLOCXX_ICONV_HPP_INCLUDE_GUARD_HPP_
36 #include "blocxx/BLOCXX_config.h"
38 #if defined(BLOCXX_HAVE_ICONV_SUPPORT)
44 namespace BLOCXX_NAMESPACE
51 class BLOCXX_COMMON_API IConv_t
71 IConv_t(
const String &fromEncoding,
const String &toEncoding);
88 bool open(
const String &fromEncoding,
const String &toEncoding);
104 size_t convert(
char **istr,
size_t *ibytesleft,
105 char **ostr,
size_t *obytesleft);
138 BLOCXX_COMMON_API String
139 fromByteString(
const String &enc,
const char *str,
size_t len);
152 BLOCXX_COMMON_API String
153 fromByteString(
const String &enc,
const std::string &str);
155 #ifdef BLOCXX_HAVE_STD_WSTRING
167 BLOCXX_COMMON_API String
168 fromWideString(
const String &enc,
const std::wstring &str);
182 BLOCXX_COMMON_API std::string
183 toByteString(
const String &enc,
const String &utf8);
185 #ifdef BLOCXX_HAVE_STD_WSTRING
197 BLOCXX_COMMON_API std::wstring
198 toWideString(
const String &enc,
const String &utf8);
214 #endif // BLOCXX_HAVE_ICONV_SUPPORT
215 #endif // INCLUDE_GUARD_HPP_