Хорошо, это одна из книг рекордов ...
Проблема заключалась в том, что в конец строки S1234ABC был добавлен нулевой терминатор перед вставкой в базу данных. Эта строка была позже использована для создания вышеуказанных путей. Эта строка S1234ABC была создана с использованием следующего кода:
QString prefix = "S";
QChar C1, C2, C3, etc... (randomly generated characters)
QString newID = prefix + C1 + C2 + etc...
Это создало QString с \ 0 в конце. Qt сохранил это значение в базе данных MySQL, которую я затем перенес в Qt и попытался найти путь к нему. Так как это строка с нулевым символом в конце, она выглядит нормальной в phpMyAdmin, в xterm и в файлах журнала. За исключением ... в puTTY в Windows, где я увидел странный путь, который он пытался создать:
/usr2/archive/S0836VYL\u0000/10/3/dicom
К счастью, puTTY отображает фактическое значение Юникода, а не игнорирует его Спасибо, замазка! Я никогда, никогда бы не понял это ...
Повторное создание строки S1234ABC с использованием QStrings для каждого символа вместо QChar устранило проблему. Теперь у меня есть обычные старые строки в базе данных и нормальные пути.