utf-8をandroidからphpに送信する際に問題が発生しました。私は多くの解決策をオンラインで調べましたが、それらすべてがどういうわけかUTF-8の送信に失敗します。
私のJavaコード
String str = "";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(params[0]);
try {
// set up post data
JSONObject json = getJSON();
JSONArray postjson=new JSONArray();
postjson.put(json);
// Post the data:
httppost.setHeader("json",json.toString());
httppost.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
httppost.getParams().setParameter("jsonpost",postjson);
httppost.getParams().setParameter("jsonpost",postjson);
HttpResponse response = httpclient.execute(httppost);
if(response != null)
{
str = getInputString(response);
return str;
}
}
catch (UnsupportedEncodingException e) {
return "";
}
catch (Exception e) {
return "";
}
return "";
一方、私のphp
<?php
header'Content-Type:text/plain; charset=utf-8');
$json = $_SERVER['HTTP_JSON'];
$data = json_decode($json);
$message = $data->message;
echo $message;
?>
私が受け取る出力は、「欢迎」のような漢字の場合は空白の文字列ですが、「ようこそ」のような場合は空白の文字列です。メッセージには「ようこそ」という出力があります。ここでの主な問題は何ですか?誰かが助けてくれたらありがたいです。ありがとう。
解決:
$data = json_decode(file_get_contents('php://input'));
$message = $data->message;
echo $message;
?>