Code to make sure a string complies with standard filename rules.
The input...
results in...
B4X:
Sub FileNameSanitizer(strFileNameToClean As String) As String
Return Regex.Replace2("([^\p{L}\s\d\-_~,;:\[\]\(\).'])", Regex.CASE_INSENSITIVE, strFileNameToClean, "")
End Sub
The input...
B4X:
Log( FileNameSanitizer("File001-dynamicstringfromwhereverö€_12$/°^1!$|<>(){}[]`´0=ß?'#,./\̶├") )
results in...
File001-dynamicstringfromwhereverö_121()[]0ß',.Ì