我正在使用 Netbeans IDE 开发一个用于登录的 JSP 项目。登录 ID 为印地语,出现在我的 MySQL 数据库中,该数据库显示用户 ID 的印地语字体。
当我在 Netbeans 中运行这个项目时,它工作正常并且可以成功登录,但是当我在 Tomcat Manager 中部署 WAR 后尝试登录时,我无法登录。
我需要将 UTF-8 添加到 web.xml 文件吗?
最佳答案
很可能您没有使用 UTF-8 处理 POST 请求正文。您可以通过在请求正文被触及之前添加以下行来强制执行此操作(即在首次调用 request.getParameter()
等之前):
request.setCharacterEncoding("UTF-8");
为了防止在所有 servlet 上重复/复制粘贴此行,常见的方法是创建 servlet filter这正是完成这项工作的。然后您可以将其映射到 /*
的 URL 模式上将其应用于所有传入请求。
我认为您已经正确完成了此操作,但您还应该确保您的 JSP 也使用 UTF-8 发出响应 <%@page pageEncoding="UTF-8"%>
或至少一个<jsp-config>
条目 web.xml
这适用于所有 JSP。
另请参阅:
关于mysql - JSP 不支持英语以外的语言登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132774/