Home >Backend Development >PHP Tutorial >java向php post数据时, 中文显示问号问题

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

WBOY
WBOYOriginal
2016-06-23 14:20:191545browse

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);

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:php comet 推送Next article:新手求助,无法安装Xdebug