處理javaWEB中前後台中文亂碼成績的3種辦法。本站提示廣大學習愛好者:(處理javaWEB中前後台中文亂碼成績的3種辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是處理javaWEB中前後台中文亂碼成績的3種辦法正文
中文亂碼成績真的是一個很辣手的成績,特殊是早年台傳到後台以後,都不曉得成績出在哪裡了。如今分享處理javaWEB中前後台中文亂碼成績的3種辦法。
辦法一:
tomcat的自帶編碼是ISO-8859-1的格局,是不兼容中文的編碼的。所以我們從後台吸收的時刻要留意。
采取雷同的格局去吸收(ISO-8859-1),然後用能解析的編碼(utf-8)去轉換。如許我們就可以獲得能兼容中文的格局了。如許處置以後發往前台。留意:發往前台的時刻也須要設置一下
resp.setContentType("text/html;charset=utf-8");//設置頁面的字符編碼,處理界面顯示中文亂碼的成績
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //由於tomcat自帶編碼是ISO-8859-1格局
//處理亂碼辦法之一 <span > </span>String name=req.getParameter("username"); <span > </span>String pwd=req.getParameter("pwd"); <span > </span>byte[] b=name.getBytes("ISO-8859-1");//用tomcat的格局(iso-8859-1)方法去讀。 <span > </span>String str=new String(b,"utf-8");//采取utf-8去接string <span > </span>resp.setContentType("text/html;charset=utf-8");//設置頁面的字符編碼<span > </span>
<span > </span>PrintWriter pw =resp.getWriter(); <span > </span>String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>"; <span > </span>pw.print(str1); PrintWriter pw =resp.getWriter(); String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>"; pw.print(str1);
辦法二:
因為辦法一比擬繁瑣,采取用了簡略的設置。只須要簡略的一句便可以弄定
req.setCharacterEncoding("utf-8");//必需寫在第一名,由於采取這類方法去讀取數據,不然數據會失足。
如許就不消像之前的那樣繁瑣的設置了
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //由於tomcat自帶編碼是ISO-8859-1格局 //處理亂碼二《法一比擬繁瑣》 req.setCharacterEncoding("utf-8");//必需寫在第一名,由於采取這類方法去讀取數據,否 則數據會失足。 //設置如許方法去讀。如許中文就可以夠讀掏出來了,然則須要留意。表單的發送方法必需是<span > method='post'</span> resp.setContentType("text/html;charset=utf-8");//設置傳曩昔的頁面顯示的編碼 String name=req.getParameter("username"); String pwd=req.getParameter("pwd"); PrintWriter pw =resp.getWriter(); String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>"; pw.print(str1);
辦法三:
這是在法二的基本上修正的。固然我們能修正編碼格局去讀,然則斟酌到用戶確定不會修正,所以我們須要采取比擬通用的方法,讓用戶修正設置裝備擺設文件。也就是web.xml文件
須要修正web.xml外面的內容,就是說,字符編碼從xml吸收過去。須要在xml文件中設置裝備擺設參數。
代碼以下:
<servlet> <servlet-name>Encodeing</servlet-name> <servlet-class>cn.hncu.com.encode.Encodeing</servlet-class> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value>//這外面的內容可供用戶本身填寫(必需是編碼格局) </init-param> </servlet>
我們曉得前台和後台停止交流必需經由web.xml設置裝備擺設
我們須要獲得web.xml的設置的參數
public void init(ServletConfig config) throws ServletException { charset=config.getInitParameter("charset");//取得初始化參數。固然charset須要設置為全局變量。前面的service函數須要設置req.setCharacterEncoding(charset); }
req.setCharacterEncoding(charset); resp.setContentType("text/html;charset=utf-8"); String name=req.getParameter("username"); String pwd=req.getParameter("pwd"); PrintWriter pw =resp.getWriter(); String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>"; pw.print(str1);
處理的後果圖:
處理之前:
處理以後:
前台代碼:
<body> <form action="login" method="post">//login在web.xml中設置裝備擺設,就可以完成到後台去讀取數據 用戶名:<input type="text" name="username"/><br/> 暗碼:<input type="password" name="pwd"/><br/> <input type="submit" value="登錄"/> </form> </body>
以上就是為年夜家分享的處理javaWEB中前後台中文亂碼成績的3種辦法,特殊是早年台傳到後台以後發生的中文亂碼成績,願望對年夜家的進修有所贊助。