问题层出不穷,谢过高手!J2ME发URL有中文,编码乱码,如何解决

liuxiaohui1987 2009-07-29 05:16:50
用J2ME HttpConnection发送URL是,因为里面的参数带中文(必须要带),所以用URLEncoder编码在发送。在电脑上运行的很正常,不会出现汉字乱码问题。但放到手机上就出现乱码了。经URLEncoder编码后的汉字发送后变成了%3F%3F%3F(也就是???),不知为什么,改过编码用UTF-8和GBK都试过还是乱码,实在郁闷,以下是我的链接方法和发送,望高手指点
url格式:http://1.1.1.1/k_java_sms/k_java.asp?us=90010101&an=YS%20中文&phone=13000000000
for (int i = 0; i < 5; i++) {
if (reconnect) {
c = (HttpConnection) Connector.open(url, Connector.READ,
true);
c.setRequestProperty("Content-Type","text/html;charset=UTF-8");

c.setRequestMethod(HttpConnection.GET);
reconnect = false;
}
head = c.getHeaderField("Content-Type");
System.out.println(head);
if ((head.startsWith("text/vnd.wap.wml") || head
.startsWith("application/vnd.wap.wmlc"))) {
// 断开当前连接;
c.close();
c = null;
reconnect = true;// 重新连接当前url,重连标志置为true
System.out.println("重连...");
d=true;
// continue;
}
}

在run()里调用
public void run() {
if (downLoad != null && !url.equals("")) {
String urls=null;
try {
urls = new String(url.getBytes(),"UTF-8");
System.out.println("UTF-8后的URL:"+urls);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
getURL = downLoad.getImageURL(url);
lianwang = true;
}
...全文
229 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasper_shi 2011-11-26
  • 打赏
  • 举报
回复
似乎问题没有答案啊
zijing660 2009-07-29
  • 打赏
  • 举报
回复
%3F%3F%3F

这个就是UTF解码后的信息啊。。。你把它再做UTF编码就好了啊
liuxiaohui1987 2009-07-29
  • 打赏
  • 举报
回复
手机
kf156 2009-07-29
  • 打赏
  • 举报
回复
编码后输出是什么?

%3F%3F%3F 是什么地方输出看到的?
liuxiaohui1987 2009-07-29
  • 打赏
  • 举报
回复
url = url1 +URLEncoder.encode(name)+ url2 ;
是用URLEncoder把中文编码的
kf156 2009-07-29
  • 打赏
  • 举报
回复
没看明白
URLEncoder在哪处理的?

13,100

社区成员

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

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