国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

解決javaWEB中前后臺中文亂碼問題的3種方法

2019-11-26 14:51:45
字體:
來源:轉載
供稿:網友

中文亂碼問題真的是一個很棘手的問題,特別是從前臺傳到后臺之后,都不知道問題出在哪里了。現在分享解決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 style="white-space:pre">  </span>String name=req.getParameter("username"); <span style="white-space:pre">  </span>String pwd=req.getParameter("pwd"); <span style="white-space:pre">  </span>byte[] b=name.getBytes("ISO-8859-1");//用tomcat的格式(iso-8859-1)方式去讀。 <span style="white-space:pre">  </span>String str=new String(b,"utf-8");//采用utf-8去接string <span style="white-space:pre">  </span>resp.setContentType("text/html;charset=utf-8");//設置頁面的字符編碼<span style="white-space:pre"> </span> 
<span style="white-space:pre">  </span>PrintWriter pw =resp.getWriter(); <span style="white-space:pre">  </span>String str1="<html><body><font size='5px' color='red'>username:"+name+"pwd:"+pwd+"</font></body></html>"; <span style="white-space:pre">  </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 style="color:#ff0000;"> 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種方法,特別是從前臺傳到后臺之后產生的中文亂碼問題,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 红原县| 平顶山市| 苏州市| 乌鲁木齐县| 赤水市| 冀州市| 嘉峪关市| 屏山县| 洛南县| 睢宁县| 商河县| 大丰市| 郸城县| 通江县| 临颍县| 沙河市| 甘德县| 安国市| 汾西县| 大同县| 通化县| 定南县| 电白县| 陆丰市| 广安市| 洮南市| 岐山县| 张北县| 钦州市| 和林格尔县| 东城区| 昌邑市| 温泉县| 河津市| 灵璧县| 福州市| 巴林左旗| 岳普湖县| 西畴县| 威海市| 嘉峪关市|