javascript エラー「Uncaught URIError: URI malformed」の解決方法

javascript エラー「Uncaught URIError: URI malformed」の解決方法

javascriptで、エラー「Uncaught URIError: URI malformed」が発生した場合の原因と解決方法を記述してます。decodeURIに指定している値が間違っている場合に発生します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 108.0.5359.72

エラー内容

以下のコードを実行時に発生。

let str = decodeURI('%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8');
console.log(str);

エラーメッセージ

Uncaught URIError: URI malformed
at decodeURI (<anonymous>)

画像

firefox(バージョン107)では、下記のエラーとなります。

Uncaught URIError: malformed URI sequence

画像

原因

デコードする値が正しくないため。

解決方法

ここでは、デコードすると「あいうえお」になる
「%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A」
が最後の「A」が不足しているために発生してます。

let str = decodeURI('%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A');
console.log(str);

実行結果