当前位置: 首页 > Web前端 > HTML5

URI上传汉字

时间:2023-04-05 01:13:32 HTML5

除上述字符外,其他字符出现在URL中时必须进行转义。规则是根据操作系统的默认编码,将每个字节转换成一个百分号(%)加两个大写字母。的十六进制字母。例如,在UTF-8操作系统上,http://www.example.com/q=SpringFestival...,汉字“春节”在URL中不是合法字符,因此自动转换到http://www.example.com/q=%E6%….其中“spring”转换为%E6%98%A5,“festival”转换为%E8%8A%82。这是因为“spring”和“section”的UTF-8编码分别是E698A5和E88A82,在每个字节前加一个百分号就构成了URL编码。encodeURI方法的参数是一个代表整个URL的字符串。它转义元字符和语义字符以外的字符。encodeURIComponent只转换语义字符以外的字符,元字符也进行转义。因此,它的参数通常是URL的路径或参数值,而不是整个URL。decodeURI用于恢复转义的URL。它与encodeURI方法相反。decodeURIComponent用于恢复转义的URL片段。它与encodeURIComponent方法相反。在浏览器的地址栏中,浏览器认为%是转义字符,浏览器会把%和%之间的编码取出来,取出这两个数字,解码,然后传给后端,然后后端将再次解码。如果使用encodeURI()编码一次,通过后发现解码有问题,需要使用encodeURI方法两次,例如encodeURI(encodeURI("Chinese"));第一次是把中文编码成%xy的格式,第二次是把%xy中的%编码成%25。[引用地址](https://segmentfault.com/a/11...HTMLDecode(text){/*转义

123&456<*/vartemp=document.createElement("div");temp.innerHTML=text;varoutput=temp.innerText||temp.textContent;temp=null;returnoutput;}HTMLEncode(html){/**反转义*/vartemp=document.createElement("div");(temp.textContent!=null)?(temp.textContent=html):(temp.innerText=html);varoutput=temp.innerHTML;temp=null;返回输出;}