Skip to content

Commit

Permalink
[wms] Fix handling of mbtiles in paths containing non-latin characters (
Browse files Browse the repository at this point in the history
fixes #56023)
  • Loading branch information
nirvn committed Feb 22, 2024
1 parent f6e073f commit eb21fbb
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/core/qgsdatasourceuri.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,9 @@ void QgsDataSourceUri::setEncodedUri( const QByteArray &uri )

void QgsDataSourceUri::setEncodedUri( const QString &uri )
{
setEncodedUri( uri.toLatin1() );
QUrl url;
url.setQuery( uri );
setEncodedUri( url.query( QUrl::EncodeUnicode ).toLatin1() );
}

QString QgsDataSourceUri::quotedTablename() const
Expand Down
9 changes: 9 additions & 0 deletions tests/src/core/testqgsdatasourceuri.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class TestQgsDataSourceUri: public QObject
void checkAuthParams();
void checkParameterKeys();
void checkRemovePassword();
void checkUnicodeUri();
};

void TestQgsDataSourceUri::checkparser_data()
Expand Down Expand Up @@ -606,5 +607,13 @@ void TestQgsDataSourceUri::checkRemovePassword()
QCOMPARE( uri2, QStringLiteral( "postgresql://user@127.0.0.1:5432?dbname=test" ) );
}

void TestQgsDataSourceUri::checkUnicodeUri()
{
QgsDataSourceUri uri;
uri.setEncodedUri( QStringLiteral( "url=file:///directory/テスト.mbtiles&type=mbtiles" ) );
QCOMPARE( uri.param( QStringLiteral( "url" ) ), QStringLiteral( "file:///directory/テスト.mbtiles" ) );
}


QGSTEST_MAIN( TestQgsDataSourceUri )
#include "testqgsdatasourceuri.moc"

0 comments on commit eb21fbb

Please sign in to comment.