我就不明白了。。我寫了兩個(gè)jsp文件,編碼均為utf-8,一個(gè)就能正常顯示中文,另一個(gè)則不能。。。求解啊
正常顯示中文的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>站內(nèi)檢索索引建立頁(yè)面</title> <script type="text/javascript"> function checkForm(form){ if(form.toIndexPage.value==""||form.toIndexPage.value==null){ alert("請(qǐng)輸入要建立索引的網(wǎng)站!"); form.toIndexPage.focus(); return false; } else return true; } </script> </head> <body> <form action="<%=request.getContextPath()%>/IndexServlet" METHOD="post" onsubmit="return checkForm(this)"> <%--查詢表單 10行--%> <B>輸入要建立索引的網(wǎng)站:</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>站內(nèi)檢索系統(tǒng)檢索頁(yè)面</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>站內(nèi)檢索系統(tǒng)</h1> </p> </p> <p> <p align="center" class="STYLE1">索引建立成功:<%=request.getAttribute("WebName") %></p> <p align="center" class="STYLE1">請(qǐng)輸入檢索內(nèi)容: <input type="text" name="textfield" /> <input type="submit" name="Submit" value="檢索" /> </p> </p> <p> <p align="center">當(dāng)前時(shí)間:<%String mydate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());%> ?? <%=mydate%></p> </p> </body> </html>
認(rèn)證高級(jí)PHP講師
大概是因?yàn)橐粋€(gè)是utf-8編碼,一個(gè)是utf-8 +bom的編碼,兩種的區(qū)別在視覺上是看不出來(lái)的。你放到eclipse中統(tǒng)一改成utf-8的就好了。
請(qǐng)問(wèn)是不是這一句代碼生成的文字是亂碼?
<%=request.getAttribute("WebName") %></p>
JSP里面通過(guò)request傳送參數(shù)之后,會(huì)自動(dòng)變?yōu)镮SO8859-1的編碼,所以從request中讀取參數(shù)的時(shí)候,還需要設(shè)置這個(gè)取值的編碼為UTF-8。
你可以看看JSP的教材上應(yīng)該有講解。
我也已經(jīng)很久沒有接觸過(guò)JavaWeb了,如果有錯(cuò)誤,還希望多多指教!
你的亂碼明顯是獲取請(qǐng)求參數(shù)的時(shí)候,出現(xiàn)了漢字亂碼。
參考:http://blog.csdn.net/b_qxzb/article/details/50179075
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)