我需要在我的程序中使用“ö”,“ä”。“ü”,但java / android不会让我

时间:2010-04-29 17:30:34

标签: java android unicode special-characters

我需要我的程序向服务器发送请求。问题是,服务器只识别ös,äsundüs,但JAVA和/或Android不知道它们。 `如何在没有JAVA / Android的情况下发送像Hermann-Löns这样的字符串的请求“改变”ö....哦,顺便说一句,“oe”也没有被服务器识别,已经尝试过了。 ..

请求帮助!

@BalausC:

我将您的代码更改为:

我不确定这是否是你如何引用正确的字段...

String url = "http://busspur02.aseag.de/bs.exe?SID=473A2&ScreenX=1440&ScreenY=900&CMD=CR&DatumT=30&DatumM=4&DatumJ=2010&AbfAnk=Abf&ZeitH=10&ZeitM=45&Intervall=60&Loeschen=%28N%29eue+Suche";
        String charset = "CP1252";
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("HTO", start_from));
        params.add(new BasicNameValuePair("HT1", destination));
        UrlEncodedFormEntity query = new UrlEncodedFormEntity(params, charset);

            HttpPost post = new HttpPost(url);
            post.setEntity(query);
            InputStream response = new DefaultHttpClient().execute(post).getContent();
            // Now do your thing with the facebook response.

我无法编译因为我收到错误说:

  

方法getContent()未定义   对于HttpResponse类型

如果删除了getContent(),则说:

Type mismatch: cannot convert from HttpResponse to InputStream

还有一件事:我使用htmlparser(http://htmlparser.sourceforge.net/)来解析生成的网站。如何访问生成的html网站来解析它?因为否则我将不得不重写几乎所有代码以获得结果..

1 个答案:

答案 0 :(得分:4)

到目前为止,您需要使用java.net.URLEncoder和相应的字符编码来对请求参数中的特殊字符进行编码。

String param = URLEncoder.encode("Hermann-Löns", "CP1252");

确保在HTTP请求中指定Accept-Charset: CP1252标头。有关如何使用正确编码触发HTTP请求的更完整的代码示例,请检查我在一小时前发布的this answer。它还涵盖了一个HttpClient示例,该示例也包含在Android中。