简而言之,法语角色在从我的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帮助我,问题发生在哪里(在什么阶段)?我该如何解决?
答案 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);