Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/java/net/URLEncoder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/net/URLEncoder#inhmethods)

# URLEncoder


`
public


class
URLEncoder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.net.URLEncoder |

<br />

*** ** * ** ***

Utility class for HTML form encoding. This class contains static methods
for converting a String to the `application/x-www-form-urlencoded` MIME
format. For more information about HTML form encoding, consult the HTML
[specification](http://www.w3.org/TR/html4/).


When encoding a String, the following rules apply:

- The alphanumeric characters "`a`" through "`z`", "`A`" through "`Z`" and "`0`" through "`9`" remain the same.
- The special characters "`.`", "`-`", "`*`", and "`_`" remain the same.
- The space character " " is converted into a plus sign "`+`".
- All other characters are unsafe and are first converted into one or more bytes using some encoding scheme. Then each byte is represented by the 3-character string "*`%xy`*", where *xy* is the two-digit hexadecimal representation of the byte. The recommended encoding scheme to use is UTF-8. However, for compatibility reasons, if an encoding is not specified, then the default encoding of the platform is used.


For example using UTF-8 as the encoding scheme the string "The
string ü@foo-bar" would get converted to
"The+string+%C3%BC%40foo-bar" because in UTF-8 the character
ü is encoded as two bytes C3 (hex) and BC (hex), and the
character @ is encoded as one byte 40 (hex).

## Summary

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLEncoder#encode(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String s, https://developer.android.com/reference/java/lang/String enc) ` Translates a string into `application/x-www-form-urlencoded` format using a specific encoding scheme. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLEncoder#encode(java.lang.String)(https://developer.android.com/reference/java/lang/String s) ` *This method was deprecated in API level 15. The resulting string may vary depending on the platform's default encoding. Instead, use the encode(String,String) method to specify the encoding.* |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/net/URLEncoder#encode(java.lang.String,%20java.nio.charset.Charset)(https://developer.android.com/reference/java/lang/String s, https://developer.android.com/reference/java/nio/charset/Charset charset) ` Translates a string into `application/x-www-form-urlencoded` format using a specific [Charset](https://developer.android.com/reference/java/nio/charset/Charset). |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||

## Public methods

### encode

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String encode (String s, 
                String enc)
```

Translates a string into `application/x-www-form-urlencoded`
format using a specific encoding scheme.


This method behaves the same as [encode(String s, Charset charset)](https://developer.android.com/reference/java/lang/String)
except that it will [look up the charset](https://developer.android.com/reference/java/nio/charset/Charset#forName(java.lang.String))
using the given encoding name.

<br />

| Parameters ||
|---|---|
| `s` | `String`: `String` to be translated. <br /> |
| `enc` | `String`: The name of a supported [character encoding](https://developer.android.com/reference/java/lang/package-summary.html#charenc). <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the translated `String`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/UnsupportedEncodingException` | If the named encoding is not supported |

**See also:**

- `https://developer.android.com/reference/java/net/URLDecoder#decode(java.lang.String,%20java.lang.String)`

### encode

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level
15](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String encode (String s)
```


**This method was deprecated
in API level 15.**   

The resulting string may vary depending on the platform's
default encoding. Instead, use the encode(String,String)
method to specify the encoding.

Translates a string into `x-www-form-urlencoded`
format. This method uses the platform's default encoding
as the encoding scheme to obtain the bytes for unsafe characters.

<br />

| Parameters ||
|---|---|
| `s` | `String`: `String` to be translated. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the translated `String`. <br /> |

### encode

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String encode (String s, 
                Charset charset)
```

Translates a string into `application/x-www-form-urlencoded`
format using a specific [Charset](https://developer.android.com/reference/java/nio/charset/Charset).
This method uses the supplied charset to obtain the bytes for unsafe
characters.


***Note:** The [World Wide Web Consortium Recommendation](http://www.w3.org/TR/html40/appendix/notes.html#non-ascii-chars) states that
UTF-8 should be used. Not doing so may introduce incompatibilities.*

<br />

| Parameters ||
|---|---|
| `s` | `String`: `String` to be translated. <br /> |
| `charset` | `Charset`: the given charset <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the translated `String`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `s` or `charset` is `null`. |

**See also:**

- `https://developer.android.com/reference/java/net/URLDecoder#decode(java.lang.String,%20java.nio.charset.Charset)`