servlet中doGet、doPost方法里常见的中文乱码问题(博主主要是写给自己看的,不喜勿喷)

来源:互联网 发布:苹果手机 数据恢复 编辑:程序博客网 时间:2024/06/05 01:16
当浏览器向服务端发送数据时,若数据是发送到servlet的doGet方法中且带中文,传到服务端后会出现中文乱码,这是因为tomcat的URI将中文进行了编码,需要在tomcat文件目录下的conf文件中的server.xml中添加useBodyEncodingForURI="true" URIEncoding="UTF-8"这一行代码,如图

再在doGet方法中编写String name = new String(request.getParameter("namep").getBytes("ISO-8859-1"),"UTF-8"),namep是浏览器URI中带中文的参数,这样便可解决doGet中的乱码问题。

若是页面中表单数据传送到服务器中,这时doPost中如获取带中文的参数,会出现中文乱码,因为tomcat中是采用ISO-8859-1进行编码,而一般浏览器则是使用utf-8进行编码,这时只需在doPost方法中编写String name = new String(request.getParameter("namep").getBytes("ISO-8859-1"),"UTF-8"),这是将服务器获取到的中文转换成二进制流重新编码成utf-8。

原创粉丝点击