客户端在代码中以post方式向服务端发送请求,服务端接收请求后,返回页面,返回的页面在客户端内嵌的浏览器中显示正常。在Tomcat下测试没有问题,但是WebSphere下测试,was的日志中得到的请求信息中文乱码,都是问号。服务端页面如下设置:<%@ page language="java" import="java.util.*" contentType="text/html" pageEncoding="utf-8"%>
服务端使用struts2,添加了编码的filter,CharacterEncodingFilter,编码UTF-8WAS服务器设置如下参数:
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN客户端请求代码: URL url = new URL(strUrl);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
out.write(input);
out.flush();
out.close();
服务端使用struts2,添加了编码的filter,CharacterEncodingFilter,编码UTF-8WAS服务器设置如下参数:
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN客户端请求代码: URL url = new URL(strUrl);
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
out.write(input);
out.flush();
out.close();
file.encoding一般指的是开文件时的默认字符集,user.language/region一般是读resource bundle文件时使用的Locale。
那就改成
-Ddefault.client.encoding=UTF-8 -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN
试试看。
(蒙的)
-Dclient.encoding.override=UTF-8
参见
http://www-01.ibm.com/software/globalization/j2ee/encoding.jsp
connection.setRequestProperty("Accept-Charset", "UTF-8");
试试看。如果依然不能解决的话,请描述一下如何乱码的(什么字符对应什么字符)