﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
31	QFile::isValidFile() doesn't work correctly for filenames with national characters	froloff	dmik	"Мелочь, поэтому напишу по русски :) .
bool isValidFile( const QString& fileName ) использует strchr() для проверки символа в имени файла на 
if ( strchr( badChars, fileName[i] ) )
Перед этим для приведения fileName[i] к char неявно вызывается метод latin1(), который для символов в уникоде (>0xFF) возвращает 0. Но согласно спецификации strchr() 0 это допустимы символ для поиска и более того конец строки '\0' также включается в поиск. В результате имеем FALSE для всех имён с национальными символами. 
Вот исправление:
{{{
    for ( int i = 0; i < (int) fileName.length(); i++) {
        if ( fileName[i] < QChar( 32 ) )
            return FALSE;
        '''if( (char)fileName[i] == 0 ) continue;'''

        if ( strchr( badChars, fileName[i] ) )
            return FALSE;
    }
}}}
Или можно заменить strchr() strnchr()
 "	defect	assigned	normal	qt-os2-3.3.1-rc07	kernel	3.3.1-rc06	minor		QFile national characters	
