日期:2014-05-20  浏览次数:20815 次

问题层出不穷,谢过高手!J2ME发URL有中文,编码乱码,如何解决
用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;
}


------解决方案--------------------
编码后输出是什么?

%3F%3F%3F 是什么地方输出看到的?
------解决方案--------------------
%3F%3F%3F

这个就是UTF解码后的信息啊。。。你把它再做UTF编码就好了啊