PHP和Android之间带有重音字符的消息

时间:2013-11-11 00:14:02

标签: php android

晚安,人们。

我在这里遇到一个烦人的问题,我无法弄清楚该怎么做。我尝试了一些我在这里找到的解决方案,但没有任何效果。 我有一个用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");

有人可以为我找到这个吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

Android到PHP:如果没有任何效果,您可以尝试在Android端 java.net.URLEncoder.encode(“str”,“UTF-8”) urldecode < / strong>在PHP方面。

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