Servlet学习笔记心得(二)

二,在使用html表单传递信息时,出现了中文显示乱码(乱码和??)都出现过,遂进行实验考察,在网上搜寻方法解决。css

亲测好评:blog.csdn.net/xiazdong/article/details/7217022/html

实验过程以下:java

在webroot下新建MyHtml.html
<!DOCTYPE html>
<html>
  <head>
    <title>MyHtml.html</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=GB2312">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
  
  <body>
    This is my HTML page. <br>
    <form action="servlet/Test" method="GET">
    名字:<input type="text" name="name">
    <br />
    密码:<input type="text" name="pwd" />
    <input type="submit" value="提交" />
    </form>
  </body>
</html>
<meta http-equiv="content-type" content="text/html; charset=GB2312">

当charset=GB2312时,不管servlet的.java文件内是否添加web

response.setCharacterEncoding("UTF-8");

语句,输入的名字和密码中的 中文 都没法传递到地址栏,即html表单的编码有问题,jsp

因而改成charset=UTF-8ide

结果是中文能够传递到地址栏,即servlet能够进行读取,可是否有对应字符的编码就须要在.java中添加语句:测试

response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");

测试成功~
ui


回想一下,??的出现是由于根本没有对应编码,乱码是编码的不统一,因此接下来实验一下两边(html和java)编码的对应关系:this

当html编码为UTF-8时,不管java中是UTF-8仍是GB2312,均无问题;编码


此时发现index.jsp中没法显示中文,查看编码方式为ISO-8859-1,改为UTF-8后测试成功。

相关文章
相关标签/搜索