JavaScript中encodeURI()疑惑问题
问题描述:
为什么这样子的输出就会报错(enster="馸ꚍ㎫�梮停큃ᗣ")
而这样就不会
答
目测题主原来的enster是16进制编码的字符串,有部分内容丢失了,编码操作会将每一个字符实例替换为一到四个相对应的 UTF-8 编码形式的转义序列。如果试图编码一个非高-低位完整的代理字符,将会抛出一个 URIError 错误,例如:
测试题主给的字符串没问题
目测题主原来的enster是16进制编码的字符串,有部分内容丢失了,编码操作会将每一个字符实例替换为一到四个相对应的 UTF-8 编码形式的转义序列。如果试图编码一个非高-低位完整的代理字符,将会抛出一个 URIError 错误,例如:
encodeURI('\uD800');
// "URIError: malformed URI sequence"
encodeURI('\uDFFF');
// "URIError: malformed URI sequence"
答
enster必须是一个合法的URL地址哦,该函数是对URL编码的。