HttpURLConnection传递中文参数编码问题

bloodrate 2008-05-20 03:43:32

URL url = new URL("http://10.102.1.40/oa/servlet/CreateFileServlet");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("POST");
String pro = "name=一二三.txt&folder=我的文件夹";
con.getOutputStream().write(pro.getBytes());
con.getOutputStream().flush();
con.getOutputStream().close();
InputStream in = con.getInputStream();


我想要在一个普通的java类里访问CreateFileServlet将"一二三.txt"和"我的文件夹"在服务器端得到的都是乱码。我试过转成各种编码方式都不行,高人谁告诉我怎么解决阿?

...全文
3823 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
叉子 2008-09-03
  • 打赏
  • 举报
回复
用java.net.URLEncoder.encode()编码和用base64编码的效果是一样的,但java.net.URLEncoder.encode()编码后不需要在传输后进行反编
bloodrate 2008-05-20
  • 打赏
  • 举报
回复
解决了,用了base64编码,把中文编成英文和字符,按照ascii格式编组传输,然后反编成中文:)
bloodrate 2008-05-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 truthsun22 的回复:]
你在发送的时候先转一下编码,获得时再转一下编码,编码要一致,试试
[/Quote]

每种编码的组合我都试了,关键我不知道该把哪种编码,转成哪种编码,平常都是用jsp的表单提交的,不用考虑这个问题。
truthsun22 2008-05-20
  • 打赏
  • 举报
回复
你在发送的时候先转一下编码,获得时再转一下编码,编码要一致,试试
bloodrate 2008-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ayueiloveyou 的回复:]
那么你要在Servlet里转码啊,或设置request.setCharacterEncoding("GBK");之类的代码
[/Quote]

试过了,没有变化
ilrxx 2008-05-20
  • 打赏
  • 举报
回复
URL中参编码:java.net.URLEncoder.encode("中文传出参数","utf-8等编码方式");
URL中参解码:java.net.URLDecoder.decode("中文传入参数","utf-8等编码方式");
我是小辉辉 2008-05-20
  • 打赏
  • 举报
回复
那么你要在Servlet里转码啊,或设置request.setCharacterEncoding("GBK");之类的代码

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧