WEB前后端传输乱码问题总结

以下各种编码方式,不会编码的特殊字符:

encodeURI:

某些ASCII标点符号:- _ . ! ~ * ' ( )
URI中有特殊含义的ASCII标点符号:;/?:@&=+$,#

encodeURIComponent

某些ASCII标点符号:- _ . ! ~ * ' ( )

base64

+/=

遇到的问题

  1. java的URLEncode与js的encodeURIComponent对“空格”的编码不一样,java的会编码成“+”,而js的会编码成“%20”
  2. ajax传输过程中会自动对 单引号和双引号 进行编码,导致服务端接收的数据和前端发送的不一样。更诡异的是,在springmvc环境下。前端传参到后台不会有问题,但是收到后台的响应式又会被编码。为了解决所有乱码问题,最好先进性base64编码,然后在进行urlEncode编码。
  3. tomcat会自动对url进行decode,decode的编码默认为iso-8859-1。如果手动再次decode可能会出现问题。

你可能感兴趣的:(WEB前后端传输乱码问题总结)