注意事项:
所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
解决方案:
前端使用【js的unescape】进行编码传输,c#后端使用【HttpUtility.UrlDecode】是可以解码大部分场景下的文本,但是一些特殊的字符是无法解码的,那些特殊的字符会以“?”或者“�”输出。
解决这个问题,c#需要引入【Microsoft.JScript】类库
代码
Microsoft.JScript.GlobalObject.unescape(HtmlContent);
HtmlContent:为需要解码后的内容
延伸阅读:
c#对js的encodeURI() 编码 decodeURI()解码 escape() 编码unescape()解码,decodeURIComponent() ,encodeURICompon加密解密