URL中参数的值为中文时,servlet接收后显示为乱码,如下图:
![tomcat中的URL参数为中文,servlet接收后显示乱码 tomcat中的URL参数为中文,servlet接收后显示乱码](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TWpBeE5TNWpibUpzYjJkekxtTnZiUzlpYkc5bkx6RXdNVFk0TnpNdk1qQXhOakE0THpFd01UWTROek10TWpBeE5qQTRNamt4TlRBek1UTTFOelF0TVRVMk1qZzVOekEyT1M1d2JtYz0uanBn.jpg?w=700&webp=1)
这时候需要修改tomcat的中的server.xml文件。该文件路径为 tomcat安装目录下的conf文件夹。
为修改前的server.xml文件。
![tomcat中的URL参数为中文,servlet接收后显示乱码 tomcat中的URL参数为中文,servlet接收后显示乱码](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TWpBeE5TNWpibUpzYjJkekxtTnZiUzlpYkc5bkx6RXdNVFk0TnpNdk1qQXhOakE0THpFd01UWTROek10TWpBeE5qQTRNamt4TlRBeE16VTBORGt0TVRreE5EWXhORFU1TlM1d2JtYz0uanBn.jpg?w=700&webp=1)
修改后的server.xml文件。增加了一行: URIEncoding="UTF-8"
修改后重启tomcat服务器,然后测试正常。
![tomcat中的URL参数为中文,servlet接收后显示乱码 tomcat中的URL参数为中文,servlet接收后显示乱码](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TWpBeE5TNWpibUpzYjJkekxtTnZiUzlpYkc5bkx6RXdNVFk0TnpNdk1qQXhOakE0THpFd01UWTROek10TWpBeE5qQTRNamt4TkRVMU1UQTBNVGd0TVRjeU9UazBOekF5TVM1d2JtYz0uanBn.jpg?w=700&webp=1)
利用request.setCharacterEncoding("UTF-8");来设置Tomcat接收请求的编码格式,
只对POST方式提交的数据有效,对GET方式提交的数据无效!
要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。