一个关于ServletInputStream的中文问题,很有挑战性的!

lun2001 2002-04-02 04:52:18
环境:tomcat4.0.1

我用xmlhttp传输一段数据到jsp
接收时中文会乱码
源码如下:

<%@ page contentType="text/html; charset=GB2312" %>
<%@ page import="java.io.*"%>

<%
//InputStream
InputStream sin = new BufferedInputStream(request.getInputStream());
ByteArrayOutputStream sout = new ByteArrayOutputStream();
int i=0;
int b=0;
while((b=sin.read())!=-1)
{
sout.write(b);
}
byte[] temp = sout.toByteArray();
String s_ok = new String(temp,"GB2312");
out.print(s_ok);
sout.close();
%>

-----------------------------------------------------------------

如果把源InputStream换作是FileInputStream读取一个文件
发送到客户端
中文完全没有乱码

why???
...全文
71 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooleyes 2002-04-03

String s_ok = new String(temp,"GB2312");
改成
String s_ok = new String(temp,"iso-8859-1");
试试
回复
lun2001 2002-04-03
没有人回答,没办法了..........!!!!!!!!

但也不能把分浪费了
回复
gdsean 2002-04-03
http://www-900.ibm.com/developerWorks/java/java_chinese/index.shtml
回复
lun2001 2002-04-03
我顶
回复
cooleyes 2002-04-03
其实关键在于要知道你从request.getInputStream()
读回来的编码是什么,再作编码转换
回复
lun2001 2002-04-03
也不行
算了

结帖了

真无耐!!!!!!!
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告