Android向PHP后台服务器传中文出现乱码的解决办法

之前做项目的时候一直是Android向PHP后台传英文或者数字,今天第一次传了一个中文参数过去,结果出现了乱码。在一段时间的分析之后,问题出在PHP后台页面的编码问题。我Android的发送数据的时候采用了UTF-8的编码格式,而PHP页面默认的编码格式并非UTF-8,修改之后即可正常运行。

Android端的代码如下

public static String busInfoQuery(String station, String bus_lane) {
		String connectURL = "http://10.0.0.12/smartBus/back/user_queryBusInfo.php";
		String result;
		HttpPost httpPostRequest = new HttpPost(connectURL);
		//httpPostRequest.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
		List<NameValuePair> params = new ArrayList<NameValuePair>();
		params.add(new BasicNameValuePair("station",station));
		params.add(new BasicNameValuePair("bus_lane",bus_lane));
		try {
			httpPostRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
			HttpResponse httpResponse = new DefaultHttpClient().execute(httpPostRequest);
			if(httpResponse.getStatusLine().getStatusCode()==200){
				result = EntityUtils.toString(httpResponse.getEntity());
				Log.i("json", result);
				return result;
			}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
PHP后台程序需要加上如下的代码

header("Content-type: text/html; charset=utf-8");
mysql_query("set names 'utf8'");
其中第一行代码时制定该页面的编码格式为utf-8,第二行是为了使utf-8格式的中文字符在访问mysql数据时正常使用。mysql数据表的编码格式也是utf-8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值