Files
Jonas ed8bfe99b5 fix(files): normalize Unicode in node paths
Filesystem::normalizePath() converts paths to Unicode NFC, so the
filecache and storage always use NFC names. The Node API uses
PathHelper::normalizePath() instead, which didn't normalize Unicode.
Nodes returned by Folder::newFile(), Folder::newFolder(), Node::copy()
and Node::move() therefore kept the name exactly as passed in.

Files uploaded from macOS in Chrome or Firefox have NFD names. Apps that
return $node->getName() after creating such a file sent back an NFD name
for a file that is stored as NFC. Other clients then couldn't match the
name against file listings, which broke attachments in Collectives and
Text.

Normalize to NFC in PathHelper::normalizePath(), like
Filesystem::normalizePath() does. Hooks and events emitted by the Node
API now get NFC paths as well.

Refs: nextcloud/collectives#2327
Refs: nextcloud/text#7873

Signed-off-by: Jonas <jonas@freesources.org>
Assisted-by: ClaudeCode:claude-opus-5-5
2026-10-15 11:33:31 +02:00
..
2026-07-19 14:50:38 +00:00