Servlet-中文亂碼解決

HTML表單: css

POST提交方式提交表單過程不產生亂碼 html

<!DOCTYPE html>
<html>
  <head>
    <title>form.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>
  
  <body>
  <h1>個人表單</h1>
  <form action="/Encoding/GetInfo" method="get">
  u:<input type="text" name="username"/>
  <input type="submit" value="提交"/>
  <a href="/Encoding/GetInfo?username=哈後">aa</a>
  </form>
  </body>
</html>

 

GetInfo Servlet: java

package com.pas;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.pas.util.MyTools;

public class GetInfo extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		
		//設置接收編碼格式 保證接收到不是亂碼
		request.setCharacterEncoding("utf-8");
		//Mytool 用於Get方式亂碼處理
		String u=MyTools.getNewString(request.getParameter("username"));
		System.out.println(u);
		//傳遞給下一頁面
		//java.net.URLEncoder.encode用於IE6版本及其如下瀏覽器
		response.sendRedirect("/Encoding/Wel?yy="+java.net.URLEncoder.encode(u,"utf-8"));
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

 

轉發Servlet Wel: 瀏覽器

package com.pas;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.pas.util.MyTools;

public class Wel extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html");
		response.setCharacterEncoding("gb2312");
		PrintWriter out = response.getWriter();
		String u=MyTools.getNewString(request.getParameter("yy"));
		System.out.println(u);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}

}

 

Mytool工具: 工具

package com.pas.util;

import java.io.UnsupportedEncodingException;

public class MyTools {

	public static String getNewString(String old) throws UnsupportedEncodingException
	{
		return new String(old.getBytes("iso-8859-1"),"utf-8");
	}
}
相關文章
相關標籤/搜索