表单向Servlet提交参数时的中文乱码问题
用JSP&Servlet写了个website,其中有一个reg.html里面有一个表单,用于提交用户输入的个人信息,还有一个Servlet用于监听这个表单提交的参数,并且reg.html里面的charset=UTF-8,整个Eclipse也是用的UTF-8编码(工作空间范围:Window->Preferences->General->Workspace->Text file encoding->Other->UTF-8 or 项目范围:Project->Properties->Resource->Text file encoding->Other->UTF-8)。
问题来了,如果提交的参数全部是英文,没有任何问题。但是若某个参数是中文的,提交到Servlet后,打印出来就是一系列的????(仅是中文参数,英文参数显示正常),查遍了项目中所有相关的编码,都是UTF-8的,后来尝试着在doPost()方法的开头(或者获取参数值之前)设置了一下编码集,问题就解决了:
request.setCharacterEncoding("UTF-8");