Mặc dù trong đường dẫn được phép có ký tự Unicode, các spec khác nhau sẽ có những cách chấp nhận khác nhau

Spec Dấu cách Ký tự % Các ký tự phi ASCII
Markdown ❌ ✔
YAML ❌ ✔
URL ✔ ❌ ✔
Domain ✔
Thuộc tính src trong HMTL ✔ ✔
Query ❌ ✔
Windows path ✔ ✔ ✔
Linux path ✔ ✔
Mac path ✔ ✔
Docker ❌ ❌

Nên tránh dùng ký tự % trong tên tập tin, nhất là nếu sau này nó sẽ được dùng để làm URI. Vì dấu này chính là dấu để encode, nên không như những ký tự khác, khi decode phải nó sẽ gặp lỗi.
What is the difference between decodeURIComponent and decodeURI?
Sự khác biệt giữa Windows và Android, Mac trong tên file
Sẽ không có bug nếu không có spec
Các ký tự ASCII có 1 điểm mã
decodeURI không giải mã được dấu %
Mọi URL đều là URI