get的限制表单的数据集为ASCII码。
而Post支持整个ISO10646字符集,默认是用ISO-8859-1
如果表单不显示的声明method为post,则默认为get。
国际标准 ISO 10646 定义了通用字符集 UCS。 UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息。
iso10646也包含了gbk等字符集所以post方式不会乱码
而get方式只有ASCII字符集所以会乱码。
get方式需要处理一下才行。
1. js中处理方式
url=encodeURI(url);
java中处理方式 java.net.URLDecoder.decode(request.getParameter("name"), "utf-8");
2. tomcat中处理方式
server.xml中
Connector元素下设置
URIEncoding="UTF-8"
时间: 2024-10-10 23:46:09