mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-22 23:59:50 +08:00
49 lines
1.2 KiB
Java
49 lines
1.2 KiB
Java
|
// URLDecoder.java - Provides a method for decoding strings according to
|
||
|
// application/x-www-form-urlencoded MIME type.
|
||
|
|
||
|
/* Copyright (C) 1999 Cygnus Solutions
|
||
|
|
||
|
This file is part of libgcj.
|
||
|
|
||
|
This software is copyrighted work licensed under the terms of the
|
||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||
|
details. */
|
||
|
|
||
|
package java.net;
|
||
|
import java.io.UnsupportedEncodingException;
|
||
|
|
||
|
/**
|
||
|
* @author Warren Levy <warrenl@cygnus.com>
|
||
|
* @date April 22, 1999.
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Written using on-line Java Platform 1.2 API Specification.
|
||
|
* Status: Believed complete and correct.
|
||
|
*/
|
||
|
|
||
|
// JDK1.2
|
||
|
public class URLDecoder
|
||
|
{
|
||
|
// This method, per the JCL, is conservative in that it encodes
|
||
|
// some "allowable" characters as % triplets.
|
||
|
public static String decode(String s) throws Exception
|
||
|
{
|
||
|
String str = s.replace('+', ' ');
|
||
|
String result = "";
|
||
|
int i;
|
||
|
int start = 0;
|
||
|
while ((i = str.indexOf('%', start)) >= 0)
|
||
|
{
|
||
|
result = result + str.substring(start, i) +
|
||
|
(char) Integer.parseInt(str.substring(i + 1, i + 3), 16);
|
||
|
start = i + 3;
|
||
|
}
|
||
|
|
||
|
if (start < str.length())
|
||
|
result = result + str.substring(start);
|
||
|
|
||
|
return result;
|
||
|
}
|
||
|
}
|