Thanks @kshegunov !
The c_str() was just something we tested along the way!
The original code was
// Create a Json document from text. Fails for foreign characters!
QJsonDocument doc = QJsonDocument::fromJson(msg.toUtf8(), &error);
However, all the variations we/I have tried display the same problem (on CentOS 6.5, as we have discovered).