No, its not working for a '?'. For example, this is the role entry I have which I want to delete:
{
"SecurityRoleIdentifier": "<SP`~Char>?:;",
"ContextString": "",
"AccessToSensitiveData": false,
"Description": "SP3",
"SecurityRoleName": "SP3",
"UserLicenseType": "None"
}
This the URL that I am forming (after URL encoding) : /data/SecurityRoles('%3CSP%60%7EChar%3E%3F%3A%3B')
to delete the entry. As you can see, all the characters are properly encoded. I have another role, just without a '?' and it works fine (both create and delete). Why is it not letting me DELETE this entry - I am getting "No route data was found for this request"
I agree that it is not the right thing to have such characters in the security role identifier, but my question is, if the FO is allowing to create it then why not DELETE it?