summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/network/access/qftp.cpp10
-rw-r--r--tests/auto/network/access/qftp/tst_qftp.cpp5
2 files changed, 8 insertions, 7 deletions
diff --git a/src/network/access/qftp.cpp b/src/network/access/qftp.cpp
index 74c95ecd5e..30bb04b768 100644
--- a/src/network/access/qftp.cpp
+++ b/src/network/access/qftp.cpp
@@ -611,7 +611,7 @@ bool QFtpDTP::parseDir(const QByteArray &buffer, const QString &userName, QUrlIn
if (buffer.isEmpty())
return false;
- QString bufferStr = QString::fromLatin1(buffer).trimmed();
+ QString bufferStr = QString::fromUtf8(buffer).trimmed();
// Unix style FTP servers
QRegExp unixPattern(QLatin1String("^([\\-dl])([a-zA-Z\\-]{9,9})\\s+\\d+\\s+(\\S*)\\s+"
@@ -676,7 +676,7 @@ void QFtpDTP::socketReadyRead()
// does not exist, but rather write a text to the data socket
// -- try to catch these cases
if (line.endsWith("No such file or directory\r\n"))
- err = QString::fromLatin1(line);
+ err = QString::fromUtf8(line);
}
}
} else {
@@ -932,7 +932,7 @@ void QFtpPI::readyRead()
while (commandSocket.canReadLine()) {
// read line with respect to line continuation
- QString line = QString::fromLatin1(commandSocket.readLine());
+ QString line = QString::fromUtf8(commandSocket.readLine());
if (replyText.isEmpty()) {
if (line.length() < 3) {
// protocol error
@@ -964,7 +964,7 @@ void QFtpPI::readyRead()
replyText += line;
if (!commandSocket.canReadLine())
return;
- line = QString::fromLatin1(commandSocket.readLine());
+ line = QString::fromUtf8(commandSocket.readLine());
lineLeft4 = line.left(4);
}
replyText += line.mid(4); // strip reply code 'xyz '
@@ -1215,7 +1215,7 @@ bool QFtpPI::startNextCmd()
qDebug("QFtpPI send: %s", currentCmd.left(currentCmd.length()-2).toLatin1().constData());
#endif
state = Waiting;
- commandSocket.write(currentCmd.toLatin1());
+ commandSocket.write(currentCmd.toUtf8());
return true;
}
diff --git a/tests/auto/network/access/qftp/tst_qftp.cpp b/tests/auto/network/access/qftp/tst_qftp.cpp
index 795548ccc8..bfc5a73cd8 100644
--- a/tests/auto/network/access/qftp/tst_qftp.cpp
+++ b/tests/auto/network/access/qftp/tst_qftp.cpp
@@ -732,10 +732,11 @@ void tst_QFtp::put_data()
QByteArray bigData( 10*1024*1024, 0 );
bigData.fill( 'A' );
- // test the two put() overloads in one routine
+ // test the two put() overloads in one routine with a file name containing
+ // U+0x00FC (latin small letter u with diaeresis) for QTBUG-52303, testing UTF-8
for ( int i=0; i<2; i++ ) {
QTest::newRow( QString("relPath01_%1").arg(i).toLatin1().constData() ) << QtNetworkSettings::serverName() << (uint)21 << QString() << QString()
- << QString("qtest/upload/rel01_%1") << rfc3252
+ << (QLatin1String("qtest/upload/rel01_") + QChar(0xfc) + QLatin1String("%1")) << rfc3252
<< (bool)(i==1) << 1;
/*
QTest::newRow( QString("relPath02_%1").arg(i).toLatin1().constData() ) << QtNetworkSettings::serverName() << (uint)21 << QString("ftptest") << QString("password")