程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 處理javaWEB中前後台中文亂碼成績的3種辦法

處理javaWEB中前後台中文亂碼成績的3種辦法

編輯:關於JAVA

處理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種辦法,特殊是早年台傳到後台以後發生的中文亂碼成績,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved