Maison > Questions et réponses > le corps du texte
我就不明白了。。我写了两个jsp文件,编码均为utf-8,一个就能正常显示中文,另一个则不能。。。求解啊
正常显示中文的jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>站内检索索引建立页面</title> <script type="text/javascript"> function checkForm(form){ if(form.toIndexPage.value==""||form.toIndexPage.value==null){ alert("请输入要建立索引的网站!"); form.toIndexPage.focus(); return false; } else return true; } </script> </head> <body> <form action="<%=request.getContextPath()%>/IndexServlet" METHOD="post" onsubmit="return checkForm(this)"> <%--查询表单 10行--%> <B>输入要建立索引的网站:</B> <INPUT TYPE=text NAME="toIndexPage" SIZE=30 VALUE=""> <INPUT TYPE=submit VALUE="查询"> </form> </body> </html>
乱码显示中文的jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*,java.util.*,java.text.*" pageEncoding="utf-8" %> <% request.setCharacterEncoding("utf-8"); %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>站内检索系统检索页面</title> <style type="text/css"> <!-- .STYLE1 { font-family: "仿宋"; font-size: 18px; } .STYLE2 { font-family: "黑体"; font-weight: bold; } --> </style> </head> <body> <p> <p align="center" class="STYLE2"> <h1>站内检索系统</h1> </p> </p> <p> <p align="center" class="STYLE1">索引建立成功:<%=request.getAttribute("WebName") %></p> <p align="center" class="STYLE1">请输入检索内容: <input type="text" name="textfield" /> <input type="submit" name="Submit" value="检索" /> </p> </p> <p> <p align="center">当前时间:<%String mydate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());%> <%=mydate%></p> </p> </body> </html>
怪我咯2017-04-10 12:45:59
大概是因为一个是utf-8编码,一个是utf-8 +bom的编码,两种的区别在视觉上是看不出来的。你放到eclipse中统一改成utf-8的就好了。
伊谢尔伦2017-04-10 12:45:59
请问是不是这一句代码生成的文字是乱码?
<%=request.getAttribute("WebName") %></p>
JSP里面通过request传送参数之后,会自动变为ISO8859-1的编码,所以从request中读取参数的时候,还需要设置这个取值的编码为UTF-8。
你可以看看JSP的教材上应该有讲解。
我也已经很久没有接触过JavaWeb了,如果有错误,还希望多多指教!
PHP中文网2017-04-10 12:45:59
你的乱码明显是获取请求参数的时候,出现了汉字乱码。
参考:http://blog.csdn.net/b_qxzb/article/details/50179075