带有PHP的Android JSON,带有重音的字符无法正确处理

时间:2012-11-01 03:24:51

标签: java php android json

简而言之,法语角色在从我的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);

当使用英文字母时,一切都很完美,但是很完美但是当我点缀frensh字母时它就不起作用了。我插入了上面的错误日志,看看我得到了什么,我发现用法语字母,有效载荷显示法语字母为 而payloadObj是空的,所以我猜解码失败了。

Pleeease帮助我,问题发生在哪里(在什么阶段)?我该如何解决?

1 个答案:

答案 0 :(得分: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);