Hi isulzer,
What you have got is an assertion. An assertion means that some strange condition has happened. Assertions only happen in debug builds. You should have been presented a screen where you should be able to choose to continue processing.
In your case, here is what happened:
case sizeof(uint16):
// We must not allow too long strings to be written,
// as this would allow for a buggy clients to "poison"
// us, by sending ISO8859-1 strings that expand to a
// greater than 16b length when converted as UTF-8.
if (real_length > 0xFFFF) {
wxFAIL_MSG(wxT("String is too long to be saved"));
real_length = std::min<uint32>(real_length, 0xFFFF);
if (eEncode == utf8strOptBOM) {
sLength = real_length - 3;
} else {
sLength = real_length;
}
}
WriteUInt16(real_length);
break;
As you can see, it is no big deal, the string will be truncated and saved and the program can continue.
Assertions are something you have to live with if you compile your program for debug. On release builds, assertions are totally ignored.
Cheers!