0

特殊文字 (文字 'å') を使用してサーバーに HTTP リクエストを送信しようとすると、上記のエラー (タイトル) が発生し続けます。私は電話しようとしました:

_login = URLEncoder.encode(_login, "utf-8");

しかし、私はまだ例外を取得します。URLを変更しようとすると、うまくいきます。特殊文字が含まれている場合、私が試したどの URL でも発生するようです。たとえばのようにhttp://www.ål.no

回避策について知っている人はいますか?もちろん、1 つの方法として IP アドレスを使用することもできます。しかし、私はむしろそれを避けたいと思います。

助けてくれてありがとう!

ソースコードの一部:

    private String _login =        "http://www.ål.no";

    HttpClient httpclient = new DefaultHttpClient();

    try {
        _login = URLEncoder.encode(_login, "utf-8");
    } catch (UnsupportedEncodingException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    HttpPost httppost = new HttpPost(_login);

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

    //nameValuePairs.add(new BasicNameValuePair("Mail", this.Email));
    //nameValuePairs.add(new BasicNameValuePair("Password", this.Password));


    try
    {
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        BasicHttpResponse response = null;

        try
        {
            response = (BasicHttpResponse) httpclient.execute(httppost);
        }
        catch (ClientProtocolException e)
        {
            System.out.println("BasicHttpResponse");
            e.printStackTrace();
        }
}

編集:回避策が見つかりました。Firebug を使用して、もう少し深く掘り下げました。Firebug によると、サーバーは通信時に別の名前を持っています (私が見る限り)。この名前には特殊文字が含まれておらず、アプリケーションを使用してサーバーとの通信に成功しました。助けてくれてありがとう!:)

4

1 に答える 1

0

私はあなたが求めていることを理解していると思います。URL が識別する特殊文字のリストへのリンクを次に示します。

http://www.degraeve.com/reference/urlencoding.php

それがあなたが必要とするものではない場合は、私に知らせてください。

時間を節約するために、探している文字は %E5 です

于 2013-05-21T17:34:20.440 に答える