程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中將數據由UTF8轉換成GB2312格式

Java中將數據由UTF8轉換成GB2312格式

編輯:關於JAVA

UTF8轉換成GB2312 當我們在基於HTTP協議的JSP或Servlet的應用中獲取數據或發送請求時,JVM會把輸送的數據編碼成UTF8格式。如果我們直接從HTTP流中提取中文數據,提取的結果為“????”(可能更多問號),為轉換成我們能夠理解的中文字符,我們需要把UTF8轉換成GB2312,借助ISO-8859-1標准編碼能夠輕易的實現,下面的代碼實現了這一功能:

byte [] b;

String utf8_value;

utf8_value = request.getParameter("NAME");//從HTTP流中取"NAME"的UTF8數據

b = utf8_value.getBytes("8859_1"); //中間用ISO-8859-1過渡

String name = new String(b, "GB2312"); //轉換成GB2312字符

  在知道流長度的情況下將輸入流轉換成字節數組 Java中的輸入流抽象類InputStream有int read(byte[] b, int off, int len)方法,參數中byte[] b是用來存放從InputStream中讀取的數據,int off指定數組b的偏移地址,也就是數組b的起始下標,int len指定需要讀取的長度,方法返回實際讀取的字節數。

  剛學Java的朋友可能要說:先定義一個與流長度等長的字節數組,調用read方法,指定起始下標為0,指定讀取長度與數組長度等長,不是一下子可以讀出來了嗎?說的沒錯,筆者曾經也試著這樣讀取數據,但後來發現在讀取網絡數據時很不安全,我們想想在網絡上獲取數據可能並沒那麼流暢,數據流的傳送可能會斷斷續續,所以並不能保證一次就能讀取全部數據,特別是在讀取大容量數據時更是如此,所以我們必須在讀取數據時檢測實際讀取

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