当前位置:Gxlcms > PHP教程 > java向phppost数据时,中文显示问号问题

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

时间:2021-07-01 10:21:17 帮助过:16人阅读

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 listParams = new ArrayList();			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);

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

人气教程排行