I recently have a bug, when I try to send into my node server a query search of the following:
!@#$%^&*()_+ 
I get an error on my Chrome:
{status: 500, message: "URI malformed"}
message: "URI malformed"
status: 500
After reading:
When are you supposed to use escape instead of encodeURI / encodeURIComponent? 
Javascript decodeURI(Component) malformed uri exception 
any way of making encodeURIComponent in javascript ignore certain characters? 
Percent encoding javascript 
Pass a percent (%) sign in a url and get exact value of it using php 
Javascript decodeURI(Component) malformed uri exception 
My code still won't work for: !@#$%^&*()_+ when I wrap my string with encodeURIComponent and in the server do decodeURIComponent. 
It also does not work with encodeURL. 
If I do manually replace I get %2525 and it's not good.
Any idea how to solve it?
Thanks.
My code:
const endpoint = `${endpoint}&text=${encodeURIComponent(query)}`;
await fetch(endpoint);
