首页 >后端开发 >php教程 >java向php post数据时, 中文显示问号问题

java向php post数据时, 中文显示问号问题

WBOY
WBOY原创
2016-06-23 14:20:191523浏览

php post 中文 php post 中文 java

我验证了一下几个状态
echo "你好";    // 你好
echo json_encode("你好")  // /u4f60/u597d  这个我也无所谓
echo $_POST['key']  // ??

实际上我是在弄android, 连接用的包是org.apache.http下的

求解如何向php post中文

回复讨论(解决方案)

是编码的问题

echo base64_encode($_POST['key']);
贴出结果 

编码问题,收到的post值需要转码,iconv

echo base64_encode($_POST['key']);
贴出结果 

发送 ‘你’  显示Pw== 

echo base64_decode('Pw=='); //输出 ?
这就是说在发送的时候‘你’已经变成‘?’了

echo base64_decode('Pw=='); //输出 ?
这就是说在发送的时候‘你’已经变成‘?’了


decode输出的确实是'?'

我想应该是java和php编码问题吧
因为我php如果变量里存中文,去mysql做查询也是没问题的

你知道php.ini里怎么改编码吗

echo base64_decode('Pw=='); //输出 ?
这就是说在发送的时候‘你’已经变成‘?’了

好像是有可能发送的时候错了 不管什么中文单字都是Pw== 如果是两个字都是Pz8=

是这样得到request的
里面的addHeader不知道有没有意义

List<NameValuePair> listParams = new ArrayList<NameValuePair>();			if (params != null)			{				for (String name : params.keySet())				{					listParams.add(new BasicNameValuePair(name, params							.get(name)));				}			}			try			{				UrlEncodedFormEntity entity = new UrlEncodedFormEntity(						listParams);				HttpPost request = new HttpPost(url);				request.addHeader("charset", HTTP.UTF_8);				request.setEntity(entity);				return request;

这个?那个?你好像遇到了编码转换问题、mark一下

好了谢谢各位我已经解决了

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(                        listParams);//改成UrlEncodedFormEntity entity = new UrlEncodedFormEntity(                        listParams,HTTP.UTF-8);

有可能的话就下把它注释掉

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn