1. java web為什麼輸入的中文還是顯示問號text目錄下的東西跟workspace得改的都改了
你好,這是 GET方式傳遞中文參數亂碼問題,非常的常見,很簡單。
在獲取到的 name 字元串後邊調用這個方法處理一下試試看
name = java.net.URLDecoder.decode(name,"UTF-8");
System.out.println(name);
原因是,前端網頁get方法傳輸參數的時候,URL中的中文會自動的編碼(因為URL中不能包含中文),所以你在後端java程序中收到參數後,需要將被編碼的中文進行一次解碼的操作。
以上的代碼,就是對接收到的中文做了解碼。
希望能夠幫到你!
2. java web 編碼,中文顯示不了。 試過utf-8了,顯示的是問號。
Java中UTF-8轉GBK之所以不會出現中文亂碼,是因為UTF-8編碼為兼容性最大的字元集編碼,它本身就支持中文字元。
Java代碼轉碼範例:
String s = new String(ss.getBytes(),"GBK");
當你的內容本來就是正常的中文字元時,通過上面的語句轉為GBK編碼是不會有任何問題的,但如果你在轉碼之前的字元不是正確的中文字元,或者不是支持中文字元的字元集,那可能就會出現亂碼問題。
UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。UTF-8用1到6個位元組編碼UNICODE字元。用在網頁上可以同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。
在Java開發中,特別是web開發,亂碼是一種很常見而且很頭疼的問題,這常常是由於頁面端、服務端、資料庫等幾處所使用的字元不一致所致,故開發中,保持編碼一致, 往往能減少由於亂碼而帶來的時間浪費,是一件非常重要的事情。
3. javaweb怎麼處理中文亂碼問題
中文亂碼問題真的是一個很棘手的問題,特別是從前台傳到後台之後,都不知道問題出在哪裡了。現在分享解決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);
4. web和java有什麼區別各是什麼意思.
WEB前端與JAVA的區別
WEB前端,對應的職位是HTML5開發工程師、WEB前端開發工程師。這種職位主要的工作內容,是將設計師製作好的PSD圖製作成網頁,網站當中的結構、樣式、行為都是由WEB前端開發工程師完成的。
JAVA是後台語言的一種,和PHP、ASP.NET屬於同類型語言。它們要做的是資料庫的搭建以及將數據放置到前端製作好的網頁當中。
WEB前端與JAVA的工作特點
WEB前端:具有一定的可視性,在書寫一些代碼後能夠立即查看到相應的效果,在JavaScript方面對邏輯方面有一定的要求,一定的邏輯能力加上對細節的一絲不苟,才能夠完成相應的工作內容。
JAVA:邏輯能力方面要求較高,書寫的後台代碼以及資料庫操作,無法實時展示,較抽象,無法所做即所得、隨時查看效果。
WEB前端與JAVA學習的適用人群
適用人群是基於兩種技術特點而定
WEB前端:學習者邏輯能力一般,喜歡處理樣式、製作網頁特效,希望即時性的看到代碼效果
JAVA:學習者邏輯能力很強,注重非可視性內容的優化,如網頁載入速度、用戶交互的時長等
WEB前端與JAVA的薪資發展
初期入行來說,WEB前端的入行門檻要稍低於JAVA語言,根據行業特點,入行薪資也會稍有變化,2015~2017年,前端入行薪資相對較高
後期薪資兩者水平基本一致,甚至JAVA薪資水平要稍高於前端。
職業特點發展
未來職業發展過程當中,無論是從事WEB前端還是JAVA,都會向「全端」方向發展
前端走向「熟練掌握前端開發,又對後台語言有所了解」
後台走向「熟練掌握後台語言開發,並掌握基本的前端開發知識」。
WEB前端與JAVA學習的書籍
WEB前端:《HTML5布局之路》《HeadFirstJavaScript程序設計》《JavaScript權威指南》等
JAVA:《HeadFirstJAVA》《JAVA編程思想》等