Doesn’t look like you have a lot of leeway into doing this at the filter parameter level. Have you considered getting the source with the ID instead? GET {{baseUrl}}/sources/:id
If you have a way to know the ID of the source you’re looking for in advance, you can circumvent the filter string construction and the complexity altogether.
The plus(+) in the filter parameter is getting treated as space.
E.g., if you have a source named as 'mysource ’ with a trailing space, the API call to {{baseUrl}}/sources?filters=name sw "mysource+" would return it instead of a source named mysource+.
This could be a bug in SailPoint and you should report this bug with the SailPoint. They have handled other special characters as well.
You can list all sources and loop through sources. Then in your script, you can check sourceName with substring of your choice. The substring can be found in the source that you are trying to fetch. That way you can filter your desired source.