二,在使用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后测试成功。