@沐风徐徐: 不知道为什么“问题补充”那个功能好像不好用了,只好写在这里了。
没有人给出正确的解答。
但我已经找到问题所在。
只有一个人回答,所以我想得分就都归你吧。
正确解答:
问题出在“new ByteArrayInputStream(responseString.getBytes());”这行代码。
String的getBytes()方法,还有一个是带参数的,public byte[] getBytes(String charsetName)。
而不带参数的方法会使用平台默认的Charset——“Encodes this {@code String} into a sequence of bytes using the platform's default charset, storing the result into a new byte array.”——所以,在Eclipse里运行时使用的UTF-8,而打包直接放到tomact里运行时,因为我的操作系统设置的是中文,所以默认的Charset是GBK了。
解决办法也就很简单了,改“responseString.getBytes()”为“responseString.getBytes(“UTF-8”)”就OK了。
谢谢大家的关注。
谢谢楼下朋友的回复。