http 短信接口发送短信的时候中文乱码

nai598455803 2013-09-02 01:23:27
http 短信接口发送短信的时候中文乱码? 所有编码格式我都已经统一了,为什么
...全文
1596 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20599885 2014-10-16
  • 打赏
  • 举报
回复
location.href='http://api.smsiseasy.com/api/sendsms/plain?user=123&password=123123&SMSText=" + 短信内容+ "&GSM=" + 电话号码 请问大神 我这个接口能发送成功,但是收到的是中文乱码?有知道么?而且我已经单独把短信内容转为 GB2312啦?请问这个为什么还是中文乱码啊?
qq_20599885 2014-10-16
  • 打赏
  • 举报
回复
location.href='http://api.smsiseasy.com/api/sendsms/plain?user=123&password=123123&SMSText=" + 短信内容+ "&GSM=" + 电话号码 请问大神 我这个接口能发送成功,但是收到的是中文乱码?有知道么?
u010769156 2013-09-26
  • 打赏
  • 举报
回复
这是关于HTTP传输协议,你把你带的参数在from表单获取是用 var no = document.getElementById("notice").value; no = encodeURI(no); no = encodeURI(no); 加密两次,到后台用notice = java.net.URLDecoder.decode(notice,"UTF-8"); 解密应该就OK了 如果对你有帮助,请给分
gggggame 2013-09-24
  • 打赏
  • 举报
回复
引用 29 楼 nai598455803 的回复:
[quote=引用 28 楼 gggggame 的回复:] 上行,下行,状态报告 这是短信平台最基础的功能接口吧,一般都会有的。各运营商各厂家提供的都有些差别的,有不明白的最好是找接口提供方寻求帮助。
上行,下行,是手动调用接口的时候,我想问的是,手机回复短信的时候会不会自动触发一个方法,这样的接口[/quote]对于一个短信平台,向用户发送短信就是=下行接口  对于平台接收的短信接口=上行接口(手机回复短信的时候会不会自动触发一个方法,这样的接口) 就是这样的===上下行可以记混了,挺长时间不整短信的东西了
u010769156 2013-09-22
  • 打赏
  • 举报
回复
你应该需要URL解码,我刚好也在做这个短信上行下行的接口,到时候我们可以讨论下 // beans.setMo_To(request.getParameter("Mo_To")); // beans.setMsg(URLDecoder.decode(request.getParameter("msg"), // "UTF-8")); // 解码 // beans.setMo_Msg(URLDecoder.decode(request.getParameter("Mo_Msg"), // "UTF-8")); // beans.setMobile(request.getParameter("mobile")); // // Date date = new Date(); // SimpleDateFormat format = new // SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // String mo_date = format.format(date); // beans.setMo_date(mo_date); // System.out.println(mo_date); // Pattern p = Pattern // .compile("^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$"); // // 手机格式 // Matcher m = p.matcher(beans.getMo_From()); // flag = m.matches(); // if (flag == true) { // Pattern pt = Pattern // .compile("^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$"); // // 手机格式 // Matcher mt = pt.matcher(beans.getMobile()); // res = mt.matches(); // if (res == true) { // tpMoDao.insertTpMoBeans(beans); // } else { // System.out.println("mobile手机号码格式不正确"); // } // } else { // System.out.println("上行手机号码格式不正确"); // }
nai598455803 2013-09-18
  • 打赏
  • 举报
回复
引用 28 楼 gggggame 的回复:
上行,下行,状态报告 这是短信平台最基础的功能接口吧,一般都会有的。各运营商各厂家提供的都有些差别的,有不明白的最好是找接口提供方寻求帮助。
上行,下行,是手动调用接口的时候,我想问的是,手机回复短信的时候会不会自动触发一个方法,这样的接口
gggggame 2013-09-18
  • 打赏
  • 举报
回复
上行,下行,状态报告 这是短信平台最基础的功能接口吧,一般都会有的。各运营商各厂家提供的都有些差别的,有不明白的最好是找接口提供方寻求帮助。
nai598455803 2013-09-17
  • 打赏
  • 举报
回复
引用 26 楼 qazwsxhai 的回复:
我都是做短信平台的, 建议你先看一下 平台的调用接口文档吧. 用什么编码一般说是很清楚. 再不行找下他们的技术 .
问您下,回复短信有接口吗, 就是回复短信的时候触发 的接口,这个有吗
qazwsxhai 2013-09-17
  • 打赏
  • 举报
回复
我都是做短信平台的, 建议你先看一下 平台的调用接口文档吧. 用什么编码一般说是很清楚. 再不行找下他们的技术 .
悲剧的程序员 2013-09-17
  • 打赏
  • 举报
回复
刚刚遇到这个问题,已经定位了。但是没什么好的解决方法!在调用Http服务端的时候,我这边传递的中文确实是GB2312,但是到了服务端的时候确变成了 IOS-8859-1 编码。然后服务端解析的时候是按照 GB2312 去解析。然后就出现了这个乱码的问题。还在想办法解决。看看这个传递过程中能不能改一下编码格式。
gggggame 2013-09-09
  • 打赏
  • 举报
回复
1.英文数字能发吧?能发就是字符集的事了 2.看看接口说明, 一般都有例子的,没例子就自己研究吧, 3.中文传值的时候是否需要encodeURI和decodeURI这种转码
nai598455803 2013-09-09
  • 打赏
  • 举报
回复
引用 22 楼 gggggame 的回复:
换几个手机试试,有些手机对中文支持不好。以前遇到过 
我试过了好几个都不好使
gggggame 2013-09-09
  • 打赏
  • 举报
回复
换几个手机试试,有些手机对中文支持不好。以前遇到过 
nai598455803 2013-09-06
  • 打赏
  • 举报
回复
有没有谁做过回复短信的, 有没有回复短信触发的接口?
nai598455803 2013-09-04
  • 打赏
  • 举报
回复
引用 19 楼 n_e_e_d 的回复:
我在发送的接口里面看还是正常的,发送到手机的时候中文就变成? 了, 没看懂什么意思! 调用接口就在发送的时候调用就好了啊,如果测试可以再main 方法,你的发送的内容在哪里 你可以把调用url地址的语句写在一个方法里,完了调用这个方法就行了!发送的内容可以传参数呀!

public String send(String content)
	{
		String result="";
		
	    try {
			URL url=new URL("http://www.baidu.com/send?account=qq&pwd=123&content="+content+"");
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	          
	    return result;
	}

public static void test() {         String send = SmsClientAccessTool.getInstance().doAccessHTTPPost(         "url",          "action=send&userid=111&account=1111&password=111&mobile=111&content=取消&sendTime=&checkcontent=1", "utf-8");         System.out.println(send);     }     
这个就是调用发送的方法, 他这个方法需要三个参数,一个url ,一个是参数串也就是用户名密码内容什么的,另外一个就是返回值编码,我在发送的接口里面看还是正常的,发送到手机的时候中文就变成? 了, 这个的意思就是调用发送的方法传参的时候还不是乱码的
n_e_e_d 2013-09-04
  • 打赏
  • 举报
回复
我在发送的接口里面看还是正常的,发送到手机的时候中文就变成? 了, 没看懂什么意思! 调用接口就在发送的时候调用就好了啊,如果测试可以再main 方法,你的发送的内容在哪里 你可以把调用url地址的语句写在一个方法里,完了调用这个方法就行了!发送的内容可以传参数呀!

public String send(String content)
	{
		String result="";
		
	    try {
			URL url=new URL("http://www.baidu.com/send?account=qq&pwd=123&content="+content+"");
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	          
	    return result;
	}

nai598455803 2013-09-04
  • 打赏
  • 举报
回复
引用 17 楼 n_e_e_d 的回复:
你的接口在浏览器里测试是乱码吗? 还有你是用什么方法调用的接口呢!我没看懂 你可以参考下我调用url地址的方法,感觉你和我以前用的一个短信接口一个样呢?参数是一样的

public static void main(String[] args) {
		
		try {
			
			URL url=new URL("http://www.baidu.com/");

			
			HttpURLConnection con=(HttpURLConnection)url.openConnection();
			
			BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
			
			String line;
			
			while((line=br.readLine())!=null)
			{
				System.out.println("提取:"+line);
			}	
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

我在发送的接口里面看还是正常的,发送到手机的时候中文就变成? 了, 调用接口就在发送的时候调用就好了啊,如果测试可以再main 方法,你的发送的内容在哪里
nai598455803 2013-09-03
  • 打赏
  • 举报
回复
引用 13 楼 n_e_e_d 的回复:
你自己测试的时候是怎么测试的呢?在浏览器里输入地址呢,还是在代码里调用呢? 如果是浏览器里测试的话,不同的浏览器编码方式是不一样,所以会出现乱码, 要是代码里调用的话,就是你编码方式的额问题了!具体的我感觉你应该贴个代码让人看下,不然这个很难猜出是哪的问题的!
是代码的,不是浏览器输入。
n_e_e_d 2013-09-03
  • 打赏
  • 举报
回复
你的接口在浏览器里测试是乱码吗? 还有你是用什么方法调用的接口呢!我没看懂 你可以参考下我调用url地址的方法,感觉你和我以前用的一个短信接口一个样呢?参数是一样的

public static void main(String[] args) {
		
		try {
			
			URL url=new URL("http://www.baidu.com/");

			
			HttpURLConnection con=(HttpURLConnection)url.openConnection();
			
			BufferedReader br=new BufferedReader(new InputStreamReader(url.openStream(),"utf-8"));
			
			String line;
			
			while((line=br.readLine())!=null)
			{
				System.out.println("提取:"+line);
			}	
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

nai598455803 2013-09-03
  • 打赏
  • 举报
回复
引用 15 楼 n_e_e_d 的回复:
你把调用url地址的代码贴出来,给看看!
public static void test() {
		String send = SmsClientAccessTool.getInstance().doAccessHTTPPost(
		"url", 
		"action=send&userid=111&account=1111&password=111&mobile=111&content=取消&sendTime=&checkcontent=1", "utf-8");
		System.out.println(send);
	}
	
加载更多回复(13)

81,091

社区成员

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

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