晚安,人们。
我在这里遇到一个烦人的问题,我无法弄清楚该怎么做。我尝试了一些我在这里找到的解决方案,但没有任何效果。 我有一个用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");
有人可以为我找到这个吗?
提前致谢。
答案 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方面。
很抱歉,我会在发布回答之前对你的问题发表评论,但我还没有足够的声誉。