Please help for the users know not what they do. Invalid filenames

My god i have discovered over 300Gb of : and / on a Synology NAS in just one of the Shares. It looks like its part of the name format they liked to use. Iv seen ~ ? and oh my i really dont even know how the / and \ even exist as files.

I need to make a bash.sh to run on this stuff, i know that much. what i dont know is how best to go about this.

my first thought so far is to find -r files with the known bad things but what if i dont account for a ASCII? can you use find to find “anything not this” and give it a a-z,A-Z,0-9,-,_, this way any file that has anything outside what i know is accepted would be listed or changed?

after finding how to replace all bad things with a dash?