刚刚开始java web的入门,其中产生不少令我困惑的地方。如标题,调用getRequestDispatcher()函数,参数为html文件后会产生中文乱码。
尝试过程中,参数文件后缀为.java却不会有乱码,唯独html的出现乱码,为此找了很多网上的教程,
第一类是补充以下这行代码:
response.setContentType("text/html;charset=UTF-8");
亲测后发现没有解决我的问题。
第二类是调出你的代码工具IDE(我用的是neatbeans IDE),把编码方式改成GBK或者GB2312。
但是这种方法使得我所有写有中文的代码全部变成乱码,打开就出错,幸好之前备份了,所以这个方案一样不建议使用。
第三类就是我自己的土办法了。
打开getRequestDispatcher函数中调用的参数html文件,在里面< head > < /head>的中间增添一行:
<meta charset="GBK">
注意:如果之前写的是“UTF-8”的就不要添加了,直接改成“GBK”就行了。
下面是部分截图:
没改之前:
改成GBK之后:
下面是index.html的全部代码:
<!DOCTYPE html>
<!--这是登陆的页面-->
<html>
<head>
<meta charset="GBK">
<title>注册页面</title>
</head>
<body bgcolor="#98FB98">
<center><h1>欢迎来到登陆页面</h1></center>
<center>
<form action="Main" method="post">
<table border="2">
<tr>
<td><label for="username">用户名</label></td>
<td><input type="text" name="username" id="username" placeholder="请输入账号"></td>
</tr>
<tr>
<td><label for="password">密码</label></td>
<td><input type="password" name="password" id="password" placeholder="请输入密码"></td>
</tr>
<td align="right"><input type="submit" value="注册" name="Register"></td>
<td align="right"><input type="submit" value="登陆" name="Login"></td>
<h6>护眼模式</h6>
</table>
</form>
</center>
</body>
<body align="center" >
<h6 style="color: red">如果尚未注册,请点击注册按钮!</h6>
</body>
</html>
最后:
虽然我自己没能深入的弄明白其中的原理,各位若有同样的问题的话,不妨试试,如果这个方法行不通,欢迎共同探讨。