JavaScript中encodeURI()疑惑问题

JavaScript中encodeURI()疑惑问题

问题描述:

为什么这样子的输出就会报错(enster="馸ꚍ㎫�梮停큃ᗣ")

img

img

而这样就不会

img

img

测试题主给的字符串没问题

img


目测题主原来的enster是16进制编码的字符串,有部分内容丢失了,编码操作会将每一个字符实例替换为一到四个相对应的 UTF-8 编码形式的转义序列。如果试图编码一个非高-低位完整的代理字符,将会抛出一个 URIError 错误,例如:

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

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

参考:

enster必须是一个合法的URL地址哦,该函数是对URL编码的。