Android sure does:
The only thing people often forget: Like with Linux, it depends on the filesystem used! On Android, the internal storage usually uses ext4 (on which all the above works without any problems). Users often format their SD cards (external storage) using the FAT32 filesystem, which doesn’t allow characters like above.
So if you format your SD card using ext4, you’ll have no problems. Except that you can’t (easily) access them in a card reader on Windows.
Alternatively, if your synced vault isn’t too large, you can store it on the internal storage.
Don’t know if Obsidian Sync supports this correctly, but it should. (Syncthing does.)
Otherwise @WhiteNoise is correct, of course: Know your OS and your filesystem types, and avoid things that might be incompatible when mixing.