Android 以Get方法向服务器提交数据,参数里含有中文

action=BasicOperate&table=WorkCheck&methord=InsertData&field=UserName^MorningToWorkTi... action=BasicOperate&table=WorkCheck&methord=InsertData&field=UserName^MorningToWorkTime^MorningToWorkAddress^MorningOffWorkTime^MorningOffWorkAddress^AfternoonToWorkTime^AfternoonToWorkAddress^AfternoonOffWorkTime^AfternoonOffWorkAddress^Remark^UserNameTime&values=zhangjun^2014-12-22 09:21:34^2014-12-22 09:21:34^上午下班地点^上午下班地点^2014-12-22 09:21:34^下午上班地点^2014-12-22 09:21:34^下午下班地点^备注^zhangjun2014-12-22 09:21:43
手机客户端向服务器提交数据时,由于Get参数有中文,导致连接服务器有异常,异常显示为存在非法字符。
后来想想应该是编码的原因GB与UTF。但我必须提交中文数据,该怎么做呢?
思路给我,步骤我自己来。谢谢,验证通过给你分
展开
 我来答
匿名用户
2015-08-01
展开全部

  可以用Get方式实现;

  方法:通过拼接url在url后添加相应的数据,如:http://IPvideonews/GetInfoServlet?title=霍比特人&timelength=100;

  缺点:通过Get方式提交数据只能发送2K以内的数据,适合发送容量较小的数据,另外,如果发送的数据是中文,则需要对url和服务器端做相应的乱码处理(设置能显示中文的编码方式),否则会产生乱码问题。

  处理方式如下:

追问
谢谢。
之卿飞B
2015-01-06 · TA获得超过1015个赞
知道小有建树答主
回答量:1086
采纳率:80%
帮助的人:512万
展开全部
URL url = new URL(PATH);
   HttpURLConnection conn = (HttpURLConnection) url.openConnection();
   conn.setConnectTimeout(5000);
   conn.setDoOutput(true);
   conn.setRequestMethod("GET");
   conn.connect();
   // 设置参数
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print("cmd=" + cmd + "&uid=" + username + "&login=" + pwd);
追问
谢谢您的回答,但我觉得用URLEcode.encode("参数值","utf8")更加快捷;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孤僻的拿铁0q
2015-01-06 · TA获得超过403个赞
知道答主
回答量:100
采纳率:0%
帮助的人:43.3万
展开全部
你试试用URLEcode转码试试
追问
十分感谢你的指明,通过URLEcode.encode("参数值","utf8"),我成功解决了问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式