Details
Description
The test case involved russian letter put into XML file. Transcoding crashed with "Input data transcoding error..." message but no symbol displayed. I've traced the problem to memory allocation for a single character being transcoded. The size of a character in Linux implementation is determined through 'mblen' in calcRequiredSize(..) but it seems nothing more than plain 7-bit ASCII is acceptable.
Here is a source code snippet based on original calcRequiredSize fed with a character I used:
char sExp[2]=
{'\192','\0'};
// the line below "fixes" the case: the character (russian 'A') is shown within exception message
// setlocale(LC_ALL,"Russian");
int iLen=std::mblen(&sExp[0],MB_CUR_MAX);
if(-1 == iLen)
Other platforms (Win32, Solaris etc) worked out fine.