glibmm provides Glib::convert() and Glib::locale_to_utf8() which are likely more convenient than the raw iconv wrappers. However, creating an IConv object once and using the convert() method could be useful when converting multiple times between the same charsets.
Constructor & Destructor Documentation
Glib::IConv::IConv
(
const std::string&
to_codeset,
const std::string&
from_codeset
)
Open new conversion descriptor.
Parameters:
to_codeset
Destination codeset.
from_codeset
Source codeset.
Exceptions:
Glib::ConvertError
Glib::IConv::IConv
(
GIConv
gobject
)
[explicit]
Glib::IConv::~IConv
(
)
Close conversion descriptor.
Member Function Documentation
std::string Glib::IConv::convert
(
const std::string&
str
)
Convert from one encoding to another.
Parameters:
str
The string to convert.
Returns:
The converted string.
Exceptions:
Glib::ConvertError
GIConv Glib::IConv::gobj
(
)
[inline]
size_t Glib::IConv::iconv
(
char **
inbuf,
gsize*
inbytes_left,
char **
outbuf,
gsize*
outbytes_left
)
Same as the standard UNIX routine iconv(), but may be implemented via libiconv on UNIX flavors that lack a native implementation.
In/out parameter, bytes remaining to convert in inbuf.
outbuf
Converted output bytes.
outbytes_left
In/out parameter, bytes available to fill in outbuf.
Returns:
Count of non-reversible conversions, or static_cast<size_t>(-1) on error.
void Glib::IConv::reset
(
)
Reset conversion descriptor to initial state.
Same as iconv(0, 0, 0, 0), but implemented slightly differently in order to work on Sun Solaris <= 7. It's also more obvious so you're encouraged to use it.
The documentation for this class was generated from the following file: