我整个晚上都在努力寻找解决方案......
我编写了一个从 Web 服务器请求数据的应用程序。服务器以 JSON 格式回答。一切正常,除非我在我的应用程序中输入像 ä 这样的变音符号。
在下面我假设请求 URL 是http://example.com/?q=并且我正在搜索“Jäger”
正确的调用将是 h++p://example.com/?q=J%C3%A4ger (抱歉加号,但垃圾邮件保护不允许我正确发布。)
所以我现在的问题是:
当我将编码或未编码的 URL 字符串提供给 HttpGet 时,它总是会产生一个双重编码的 URL。
然后对我的服务器的请求是http://example.com/?q=J%25C3%25A4ger(它对百分号进行编码),这导致服务器在数据库中搜索 J%C3%A4ger 这显然是错误的。
所以我的问题是,如果用户输入“Jäger”,我的应用程序如何调用正确编码的 URL?
谢谢你的帮助!
这是当前使用的代码...这可能是我有过的最糟糕的想法...
URI url = new URI("http", "//example.com/?q=" + ((EditText)findViewById(R.id.input)).getText().toString(), null);
Log.v("MyLogTag", "API Request: " + url);
HttpGet httpGetRequest = new HttpGet(url);
// Execute the request in the client
HttpResponse httpResponse;
httpResponse = defaultClient.execute(httpGetRequest);