Filenames with a '?' in them don't work on Android

Steps to reproduce

Sync a vault to Android using Obsidian Sync that contains files with ? in the filename. You will get an error saying that the

Did you follow the troubleshooting guide? [Y/N]

Yes

Expected result

It should sync files that contain a ? in the name from Obsidian Sync to an Android device.

Actual result

It does not sync files that contain a ? in the filename.

Environment

Any version of Android


Additional information

I have read the previous bug report on this topic. However, I believe fixes to this problem were dismissed without enough consideration. Yes, ? is illegal to use in filenames for Android’s file system. However, that is not stopping you from encoding ? as %3F (or some other encoding) in the actual filenames and just decoding %3F as ? in the app. This goes for other “illegal” characters as well.

The reason I’m so concerned about this is I am considering switching to Android from iPhone and I have A LOT of notes that have ? in the file name. If I can’t properly use Obsidian with all my notes on Android, then I can’t switch.

Why, in principle, can this issue not be fixed by the devs?

Duplicate of

It’s controlled by the operating system, because Obsidian uses standard text files in system. At one time, Obsidian didn’t allow illegal characters regardless of the operating system, but some Apple-only users wanted to be able to use them.

Personally, I avoid them to maintain cross-platform compatibility regardless of the OS I’m currently using.

You may be able to use something like VS Code to delete or replace them in bulk.

1 Like

It doesn’t seem like there has been much movement on that though. Will it ever be addressed?

In the meantime you could replace ? with a legal Âż

regular search: file:?

regex search: file: /?/

… right-click on a search result → Rename

I generally use Âż for that very reason.

If you have a lot of files with ? you’d probably be better off doing a bulk “find and replace” file names with a grep tool available in your OS.