1

一言で言えば、フランス語の文字は、Androidアプリからphpに文字列を送信し、JSONを使用してデコードするときに問題を引き起こします。これが私のAndroidアプリ(Java)で行っていることです

    HttpPost httppost = new HttpPost(//my server and filename);

    try {
       List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

       nameValuePairs.add(new BasicNameValuePair("payload", jsonObj.toString()));
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

       // Execute HTTP Post Request
       HttpResponse response = httpclient.execute(httppost);
     }....

そして、これが私のphpコードです

$_POST['payload'] = stripslashes($_POST['payload']); 
$payload = $_POST['payload'];
error_log(" $payload ", 0);
$payloadObj = json_decode($payload);
error_log(" $payloadObj ", 0);

英語の文字を使用するとすべてが完璧になりますが、新鮮な文字にアクセントを付けると機能しません。上記のエラーログを挿入して何が得られるかを確認しました。フランス語の文字では、ペイロードにフランス語の文字が�として表示され、payloadObjが空であるため、デコードに失敗したと思います。

Pleeeaseは私を助けてくれます、問題はどこで起こっていますか(どの段階で)?どうすれば解決できますか?

4

1 に答える 1

0

iconv()を使用して修正してみましたか?

//$payload = $_POST['payload'];
$payload = (isset($_POST['payload'])) ? iconv("UTF-8","UTF-8//IGNORE",$_POST['payload']) ? '';
error_log(" $payload ", 0);
$payloadObj = json_decode($payload);
error_log(" $payloadObj ", 0);
于 2012-11-01T03:35:53.143 に答える