11
11
#define STYX_I18NLIT_INCL
19
Characterset conversion, based on the iconv library
28
#define CS_ID_WCHAR "UCS-4"
29
#define CS_ID_MBYTE "UTF-8"
30
#define CS_ID_LATIN1 "LATIN1"
36
typedef basic_string<wchar_t > wstring;
45
virtual wchar_t* ucs42intern(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
47
virtual wchar_t* intern2ucs4(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
51
CStyxCharConv(string cs_src, string cs_dst);
52
virtual ~CStyxCharConv();
54
virtual string& getError();
56
virtual bool init(string cs_src, string cs_dst);
59
/* character set conversion of 'src[size]' to 'dst'
60
RC: >=0 on O.K. ( number of conversions / characters )
61
| =-1 on possible incomplete input
26
/** @addtogroup StyxI18NLit
27
Characterset conversion, based on the iconv library
64
virtual int convert(string& src, size_t size, string& dst);
31
const char* CS_ID_WCHAR = "UCS-4"; ///< UCS-4 characterset identifier
32
const char* CS_ID_MBYTE = "UTF-8"; ///< UTF-8 characterset identifier
33
const char* CS_ID_LATIN1 = "LATIN1"; ///< Latin1 characterset identifier
35
/// Characterset conversion, based on the iconv library
39
void* icd; ///< iconv-handle
40
wchar_t s_endian; ///< ics_src = UCS-4 --\> byte order or 0
41
wchar_t t_endian; ///< ics_dst = UCS-4 --\> byte order or 0
42
string ics_src; ///< source characterset
43
string ics_dst; ///< target characterset
44
string errmsg; ///< conversion error or ""
46
/// endian conversion UCS-4 --\> (iconv) INTERNAL
47
/// @param ws [update] UCS-4 character buffer
48
/// @param size buffer size in bytes
49
/// @param endian UCS-4 byte order
50
/// @return the converted character buffer
51
virtual wchar_t* ucs42intern(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
53
/// endian conversion (iconv) INTERNAL --\> UCS-4
54
/// @param ws [update] (iconv) INTERNAL character buffer
55
/// @param size buffer size in bytes
56
/// @param endian UCS-4 byte order
57
/// @return the converted character buffer
58
virtual wchar_t* intern2ucs4(wchar_t* ws, size_t size /*bytes*/, wchar_t endian);
61
/// The constructor creates an uninitialized conversion object.
63
/// The constructor creates an initialized conversion object.
64
/// @param cs_src source characterset
65
/// @param cs_dst target characterset
66
CStyxCharConv(string cs_src, string cs_dst);
67
virtual ~CStyxCharConv();
69
/// get conversion error
70
/// @return conversion error or ""
71
virtual string& getError();
73
/// re-initialize conversion
74
/// @param cs_src source characterset
75
/// @param cs_dst target characterset
76
/// @return true or false on error
77
virtual bool init(string cs_src, string cs_dst);
78
/// release current conversion context
79
/// @return true or false on error
82
/// characterset conversion of 'src[size]' to 'dst'
83
/// @param src input string
84
/// @param size input string size in bytes
85
/// @param dst [result] the converted string
86
/// @return number of conversions / characters \>= 0
87
/// or -1 for a possible incomplete input
89
virtual int convert(const string& src, size_t size, string& dst);