How to Fix Uncaught URIError: URI malformed Errors in JS
// ❌ This will throw "Uncaught URIError: URI malformed" encodeURI('\uD800')
Why is the error happening?
Here we are trying to encode an invalid Unicode character. The reason this is invalid for encoding is that the Unicode code range starting from U+D800 (also called "high surrogate") can be combined with another Unicode range ending with U+DFFF (also called "low surrogate") to generate new characters.
In the above example, we are missing one of the pairs from a high-low pair, meaning we will get the above error, as it is seen as an invalid character. If we were to include the low pair too, we will have no problem with the encoding.
// ✔️ This include both pairs, hence this will not produce an error encodeURI('\uD800\uDFFF') <- '%F0%90%8F%BF'
How to fix the error
In order to fix "Uncaught URIError: URI malformed" errors in your code, you need to ensure that you are passing valid characters to both
decodeURI too. If you would like to convert Unicode code points to UTF8, you can use this online tool.
Tired of looking for tutorials?
You are not alone. Webtips has more than 400 tutorials which would take roughly 75 hours to read.