Js| News | solutions | page | | |
Dynamic Web page Production Technology JSP Tutorial Web page garbled solution JSP page display garbled problem.
Using JSP to develop a Web site may be three of situations will produce garbled.
One, the JSP page displays the garbled second, the form submits the Chinese to appear the garbled third, the database connection appears garbled
Everyone in the development process of JSP, often the problem of Chinese garbled, may be one to haunt you, I am now in the development of JSP encountered in Chinese garbled problems and solutions to write for your reference.
One, JSP page display garbled
The following display page (display.jsp) will appear garbled:
<TITLE>JSP's Chinese processing webjx.com</title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<%
Out.print ("Chinese Processing of JSP");
%>
</body>
For different Web servers and different JDK versions, the processing results are not the same. Reason: The server uses different encoding methods and browsers to different characters display results. Workaround: Specify the Encoding (GB2312) in the JSP page, that is, the first line of the page plus:
English Code <%@ page contenttype= "text/html; charset=gb2312 "%>
You can eliminate the garbled. The complete page is as follows:
<%@ page contenttype= "text/html; charset=gb2312 "%>
<TITLE>JSP's Chinese processing webjx.com</title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<%
Out.print ("Chinese Processing of JSP");
%>
</body>
second, the form submitted in Chinese when there are garbled
Below is a submission page (submit.jsp) with the following code:
<TITLE>JSP's Chinese processing webjx.com</title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<form name= "Form1" method= "Post" action= "process.jsp" >
<div align= "center" >
<input type= "text" name= "name" >
<input type= "Submit" name= "submit" value= "Submit" >
</div>
</form>
</body>
The following is the Process page (process.jsp) code:
<%@ page contenttype= "text/html; charset=gb2312 "%>
<TITLE>JSP's Chinese processing webjx.com</title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<%=request.getparameter ("name")%>
</body>
If the submit.jsp submit English characters can be displayed correctly, if the submission of Chinese will appear garbled. Reason: Browsers use UTF-8 encoding to send requests by default, while UTF-8 and GB2312 encodings are different when they represent characters, which can result in unrecognized characters. Solution: Through the request.secharacterencoding ("gb2312") to the request for unified coding, the realization of the normal Chinese display. The modified process.jsp code is as follows:
<%@ page contenttype= "text/html; charset=gb2312 "%>
<%
Request.secharacterencoding ("gb2312");
%>
<TITLE>JSP's Chinese processing webjx.com</title>
<meta http-equiv= "Content-type" content= "text/html; charset=gb2312 ">
<body>
<%=request.getparameter ("name")%>
</body>
third, the database connection appears garbled
As long as the Chinese-related places are all garbled, the solution: in the database URL of database add USEUNICODE=TRUE&CHARACTERENCODING=GBK OK.
Four, the database display garbled
In mysql4.1.0, varchar type, text type will appear in Chinese garbled, for the varchar type to set it as binary attribute can solve the Chinese problem, for text type to use a code conversion class to deal with, realize as follows:
public string ISO2GB (string qs)
{
try{
if (QS = null) return "NULL";
Else
{
return new String (Qs.getbytes ("iso-8859-1"), "gb2312");
}
}
catch (Exception e) {
SYSTEM.ERR.PRINTLN ("ISO2GB Error:" +e.getmessage ());
}
return "NULL";
}
public string Gb2iso (string qs)
{
Try
{
if (QS = null) return "NULL";
else {
return new String (Qs.getbytes ("gb2312"), "iso-8859-1"); }
}
catch (Exception e) {System.err.println ("Gb2iso Error:" +e.getmessage ());}
return "NULL";
}
When the character is stored in the database, use the Gb2iso () function to remove the characters from the database, and then use the ISO2GB () function.