← 返回首页
URIError: malformed URI sequence - JavaScript | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

URIError: malformed URI sequence

Сообщение

URIError: malformed URI sequence (Firefox) URIError: URI malformed (Chrome)

In this article

Тип ошибки

URIError

Что пошло не так?

Декодирование или кодирование URI не было успешным. Аргумент переданный функциям decodeURI, encodeURI, encodeURIComponent, или decodeURIComponent был недопустимым, из-за этого функция не смогла выполнить кодирование или декодирование.

Примеры

Кодирование

Кодирование заменяет каждое вхождение конкретного символа одним, двумя, тремя или четырьмя управляющими последовательностями, представленными стандартом UTF-8. URIError возникнет, при попытке кодирования суррогата, не являющегося частью high-low пары, например:

js
encodeURI("\uD800"); // "URIError: malformed URI sequence" encodeURI("\uDFFF"); // "URIError: malformed URI sequence"

Нормальная high-low пара. Например:

js
encodeURI("\uD800\uDFFF"); // "%F0%90%8F%BF"

Декодирование

Декодирование заменяет каждую управляющую последовательность в закодированном URI компоненте символом, который она представляет. Если такого символа нет, возникнет ошибка:

js
decodeURIComponent("%E0%A4%A"); // "URIError: malformed URI sequence"

Правильный вариант обычно выглядит так:

js
decodeURIComponent("JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"); // "JavaScript_шеллы"

Смотрите также