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;