0

サイトのフロントエンドから URL を受け取る画像プロキシのようなものを書いています。画像をダウンロードしてサイズを変更し、フロントエンドとクライアントが「プロキシ」からダウンロードするための小さな画像を返します。これは、あらゆる種類の URL パターンに対処する必要があることを意味します。これが、指定された URL をデコードし、URIUtils.decode を使用してエンコードすることを選択した理由です。

private String fixUrl(String fromUrl) throws URIException {
    fromUrl = URIUtil.decode(fromUrl);
    fromUrl = URIUtil.encodeQuery(fromUrl);
    return fromUrl;
}

これは、既にエンコードされている URL を処理するのに役立ちます。私の問題は、一部の URL が二重にエンコードされていることです。私が見たところ、URIUtils.decode は再帰的なデコードを実行します。これは、二重にエンコードされた URL の場合、機能しない悪い URL を取得することを意味します。

一度だけデコードする簡単な方法はありますか?

4

1 に答える 1

0

URL に character が含まれていることを確認してみます%。何も含まれていない場合%はエンコードされていないため、デコード手順を停止できます。

于 2012-08-26T14:56:20.733 に答える