读书人

网页的乱码有关问题

发布时间: 2012-01-06 22:55:18 作者: rapoo

网页的乱码问题

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过滤器
探讨

引用:

将你JSP HTML里面涉及charset encoding的编码都设置为UTF8 ,同时在servlet的过滤器也都设置为UTF8就应该可以了,可惜我不懂日文,懂就帮你改好了

是吧Shift_JIS的地方换成UTF8是吗?

[解决办法]
获取远程编码,在本底设置。或者全是UTF-8
[解决办法]
Tomcat里面也要改一下编码方式。。
[解决办法]
探讨
引用:

Tomcat里面也要改一下编码方式。。

的编码方式该如何更改呢?

读书人网 >J2SE开发

热点推荐