diff --git a/src/storage/plugins/NfsStorage.cxx b/src/storage/plugins/NfsStorage.cxx index 53549bead..e7e5eb828 100644 --- a/src/storage/plugins/NfsStorage.cxx +++ b/src/storage/plugins/NfsStorage.cxx @@ -219,7 +219,12 @@ UriToNfsPath(const char *_uri_utf8) std::string uri_utf8("/"); uri_utf8.append(_uri_utf8); +#ifdef _WIN32 + /* assume UTF-8 when accessing NFS from Windows */ + return uri_utf8; +#else return AllocatedPath::FromUTF8Throw(uri_utf8.c_str()).Steal(); +#endif } std::string @@ -358,7 +363,14 @@ NfsListDirectoryOperation::CollectEntries(struct nfsdir *dir) const struct nfsdirent *ent; while ((ent = connection.ReadDirectory(dir)) != nullptr) { +#ifdef _WIN32 + /* assume UTF-8 when accessing NFS from Windows */ + const auto name_fs = AllocatedPath::FromUTF8Throw(ent->name); + if (name_fs.IsNull()) + continue; +#else const Path name_fs = Path::FromFS(ent->name); +#endif if (SkipNameFS(name_fs.c_str())) continue;