0

大家晚安。

我在这里遇到了一个烦人的问题,我不知道该怎么做。我尝试了一些在这里找到的解决方案,但没有任何效果。我有一个用 PHP 编写的 API,用于在我的 Android 应用程序和服务器上的数据库之间架起一座桥梁。我有一个 EditText 字段,用户可以在其中输入文本,然后该文本必须存储在服务器数据库中。问题是如果此文本包含任何特殊字符(á、ã、ç、...),它就不起作用。

如果用户发送单词“avião”,例如,在数据库中只记录“avi”。

但我有理由认为问题出在 PHP API 或 Android 上。我做了一个测试:我让我的 API 返回发送的消息(通过 POST 方法),所以我可以使用 Log.d 在 LogCat 上调试它。结果它返回'null'。

在我的 HtppURLConnection 我有这个:

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("charset", "utf-8");

在我的 API 的 .php 上,我有

header("Content-Type: application/json;charset=utf-8");

谁能帮我弄清楚这个?

提前致谢。

4

1 回答 1

0

这里可能会发生很多事情。

PHP 到 android:确保您的 PHP 脚本文件也以 UTF-8 编码。确保您使用 PHP 函数json_encode来编码 JSON 响应(而不是自己编写 JSON 响应)。有时会出现响应,因为有些字符在 JSON 中未正确编码。

Android 到 PHP:如果没有任何效果,您可以尝试在 Android 端使用java.net.URLEncoder.encode("str", "UTF-8")并在 PHP 端使用urldecode

抱歉,我会在发布答案之前对您的问题发表评论,但我还没有足够的声誉。

于 2013-11-11T13:24:44.283 回答