Heim >Backend-Entwicklung >PHP-Tutorial >java向php post数据时, 中文显示问号问题

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

WBOY
WBOYOriginal
2016-06-23 14:20:191548Durchsuche

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

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php comet 推送Nächster Artikel:新手求助,无法安装Xdebug