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 为空,所以我猜解码失败。

请帮帮我,问题到底出在哪里(在什么阶段)?我该如何解决?

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 回答