如果你 jsp 显示的网页编码正常,但是通过 Servlet 的 doGet 或 doPost 显示的网页编码却显示不正常,尽管设置了 response.setContentType("text/html;charset=UTF-8");
或在 head 内声明了 out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
,那可能就是服务器传输编码的问题,我用的是默认的 GlassFish Server,但是默认的编码是 ISO-8859-1。
解决办法:
- 右键你的工程 -> New -> Other -> GlassFish -> GlassFish Descriptor
- 编辑
glassfish-web.xml
文件,选 XML 视图 - 在
glassfish-web-app
内添加
<parameter-encoding default-charset="UTF-8" />
- 运行你的项目,问题应该就解决了。
网友评论