网页的乱码问题
- HTML code
<!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=Shift_JIS"><title>Insert title here</title></head><body> <FORM action="AddServlet" method="POST"> <TABLE> <TR><TD>タイトル: </TD><TD><INPUT name="title"></TD></TR> <TR><TD>著者: </TD><TD><INPUT name="author"></TD></TR> <TR><TD>者: </TD><TD><INPUT name="translator"></TD></TR> <TR><TD>出版社: </TD><TD><INPUT name="publisher"></TD></TR> <TR><TD>出版日: </TD><TD><INPUT name="publicationDate"></TD></TR> <TR><TD>ISBN: </TD><TD><INPUT name="code"></TD></TR> <TR><TD>メモ: </TD><TD><INPUT name="memo"></TD></TR> <TR><TD>キワド: </TD><TD><INPUT name="keyword"></TD></TR> <TR><TD>登者: </TD><TD><INPUT name="dataCreator"></TD></TR> <TR><TD><INPUT type="submit" value="登"></TD></TR> <INPUT type="hidden" name="step" value="prepare"> </TABLE> </FORM></body></html>
- Java code
package jp.bcat;import java.io.*;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.*;import java.text.SimpleDateFormat;import java.util.Date;/** * Servlet implementation class AddServlet */@WebServlet("/AddServlet")public class AddServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public AddServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String step = request.getParameter("step"); if ("prepare".equals(step)) prepare(request, response); else confirm(request, response); } void prepare(HttpServletRequest request, HttpServletResponse response) throws IOException { String errorMessage = ""; Book book = new Book(); String title = request.getParameter("title"); book.setTitle(title); if (title == null || title.length() == 0) errorMessage += "<P>タイトルを入力してください。</P>"; String author = request.getParameter("author"); book.setAuthor(author); if (author == null || author.length() == 0) errorMessage += "<P>著者を入力してください。</P>"; String translator = request.getParameter("translator"); book.setTranslator(translator); String publisher = request.getParameter("publisher"); book.setPublisher(publisher); if (publisher == null || publisher.length() == 0) errorMessage += "<P>出版社を入力してください。</P>"; String publicationDate = request.getParameter("publicationDate"); book.setPublicationDate(publicationDate); if (publicationDate == null || publicationDate.length() == 0) errorMessage += "<P>出版年月日を入力してください。</P>"; String code = request.getParameter("code"); book.setCode(code); String memo = request.getParameter("memo"); book.setMemo(memo); String keyword = request.getParameter("keyword"); book.setKeyword(keyword); String dataCreator = request.getParameter("dataCreator"); book.setDataCreator(dataCreator); if (dataCreator == null || dataCreator.length() == 0) errorMessage += "<P>登者名を入力してください。</P>"; String now = new SimpleDateFormat("yyyy-MM-dd") .format(new Date()); book.setDataCreatedDate(now); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>登</TITLE></HEAD>"); if (errorMessage.length() == 0) { out.println("<BODY>"); out.println("この内容で登しますか?"); out.println("<PRE>"); new BookWriter(out, "+ ").write(book); out.println("</PRE>"); out.println("<FORM method='POST'>"); out.println("<INPUT type='hidden' name='step' value='confirm'>"); out.println("<INPUT type='submit' value='登'>"); out.println("</FORM>"); out.println("<A href='./'>メニュにる</A>"); out.println("</BODY>"); request.getSession().setAttribute("book", book); } else { out.println("<BODY>"); out.println(errorMessage); out.println("<A href='./'>メニュにる</A>"); out.println("</BODY>"); } out.println("</HTML>"); } void confirm(HttpServletRequest request, HttpServletResponse response) throws IOException { Book book = (Book)request.getSession().getAttribute("book"); BookCatalog catalog = BookCatalog.getInstance(); catalog.addBook(book); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>登果</TITLE></HEAD>"); out.println("<BODY>"); out.println("<P>登しました。</P>"); out.println("<A href='./'>メニュにる</A>"); out.println("</BODY>"); out.println("</HTML>"); }}
我用的是eclipse动态网页编程,在addForm.html(上述html文件)的界面中输入汉字以后不能在(登)界面中显示出来,在(登)页面中显示出来的是乱码(????),我用的是日语的系统文字码是Shift_JIS,请求高手的帮助。十分感谢大家!!
[解决办法]
嗯,全部换掉,还需要用servlet过滤器
[解决办法]
获取远程编码,在本底设置。或者全是UTF-8
[解决办法]
Tomcat里面也要改一下编码方式。。
[解决办法]