版权声明:本文为博主原创文章,未经博主允许不得转载。 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>
好了!大功告成!问题解决了。