使用String()解決utf-8字元轉GB2312的問題

zergskj發表於2006-11-18
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zergskj/article/details/1394206

今天寫了個Jsp提交頁面遇到一個問題:

我採用的預設編碼形式是utf-8

而我要提交的頁面則是使用GB2321編碼的

在JavaAPI中查到以下內容:

 

public (byte[] bytes,
               charsetName)
       throws UnsupportedEncodingException
構造一個新的 String,方法是使用指定的字符集解碼指定的位元組陣列。新的 String 的長度是一個字符集函式,因此不能等於位元組陣列的長度。

當給定位元組在給定字符集中無效的情況下,該構造方法無指定的行為。當需要進一步控制解碼過程時,應使用 CharsetDecoder 類。

 

引數:
bytes – 要解碼為字元的位元組
charsetName – 受支援的 charset 的名稱
丟擲:
UnsupportedEncodingException – 如果指定字符集不受支援
從以下版本開始:
JDK1.1

 

於是想到解決辦法了:

先將資料提交到我自建的一個GB2312頁面上,使用上面的構造方法將utf-8的資料轉換成GB2312編碼,

再使用JavaScript提交資料。

新建ChangeCode.jsp:

<%@ page contentType=”text/html;charset=GB2312“%>

<%

String words=new String(request.getParameter(“words”).getBytes(“ISO8859_1″),”utf-8“);

//注意:是將資料使用目標編碼轉換成本頁編碼;

%>

<script language=”JavaScript”>

location.href=”submit.jsp?words=<%=words%>”

</script>

好了!大功告成!問題解決了。


相關文章