【发布时间】:2012-11-01 03:24:51
【问题描述】:
简而言之,在将字符串从我的 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是空的,所以我猜解码失败了。
请帮帮我,问题到底出在哪里(在什么阶段)?我该如何解决?
【问题讨论】:
-
你为什么使用
stripslashes()? -
因为我将这个信息用于 mysql 并且它是在 magicQuotes 开启的情况下。它对英文字母没有任何伤害
-
stripslashes()为 MySQL 做 nothing,与它完全没有关系。您应该禁用魔术引号。如果不能,请查看此答案:stackoverflow.com/a/517027/362536