我正在尝试使用libgdx的输入文本字段发送用户名。它可以正常使用普通字符,我可以将它发送到php并将其保存到数据库中。但是,当我尝试特殊的土耳其字符,如“ö,ş,ğ,ç,ü”等,它不会发送这些字符和后面的字符。另外,在文本字段中可以看到特殊的字符,但不能将它们发送到php文件。
我看到有关此问题的帖子here,我已将libgdx版本更新为最新的稳定版本。但我仍然遇到同样的问题。
我正在使用的代码如下:
HttpRequest request = new HttpRequest(HttpMethods.POST);
request.setUrl("http://xxxxx.com/create_usr.php");
request.setContent("name=" + name);
我是否需要在此http代码中添加更多内容才能发送这些字符?
另外我在网上看到了一些额外的代码,我不知道他们做了什么,但我在seturl之前添加了它们,但是没有用:
request.setHeader("Accept-Charset", "utf-8");
request.setHeader("Content-Type", "application/x-www-form-urlencoded");
解决:
我已使用下面的代码更改了httprequest部分并且它有效。我也改变了post方法:
HashMap<String, String> parameters = new HashMap<String, String>();
parameters.put("name", name);
HttpRequest request = new HttpRequest(HttpMethods.GET);
request.setUrl("http://xxxxx.com/create_usr.php"");
request.setContent(HttpParametersUtils.convertHttpParameters(parameters));
答案 0 :(得分:0)
尝试从Web浏览器调用您的URL,以确保libgdx应用程序或php中存在问题。您的数据库(字段)可能是UTF8,但您的mySql连接不是这样,值得一试。
此外,我不确定,但也许你必须编码参数值并在PHP端解码它。