Package org.apache.tomcat.util.buf

# Class UEncoder

java.lang.Object
org.apache.tomcat.util.buf.UEncoder

public final class UEncoder extends Object
Efficient implementation of a UTF-8 encoder. This class is not thread safe - you need one encoder per thread. The encoder will save and recycle the internal objects, avoiding garbage. You can add extra characters that you want preserved, for example while encoding a URL you can add "/".

Author:
  Costin Manolache

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`UEncoder.SafeCharsSet`

## Constructor Summary

Constructors
Constructor
Description
`UEncoder(UEncoder.SafeCharsSet safeCharsSet)`
Create a UEncoder with an unmodifiable safe character set.

## Method Summary

Modifier and Type
Method
Description
`CharChunk`
`encodeURL(String s, int start, int end)`
URL Encode string, using a specified encoding.
`protected void`
`urlEncode(CharChunk out, ByteChunk bb)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### UEncoder

public UEncoder(UEncoder.SafeCharsSet safeCharsSet)
Create a UEncoder with an unmodifiable safe character set.

Parameters:
  `safeCharsSet` - safe characters for this encoder

## Method Details

### encodeURL

public CharChunk encodeURL(String s, int start, int end) throws IOException
URL Encode string, using a specified encoding.

Parameters:
  `s` - string to be encoded
  `start` - the beginning index, inclusive
  `end` - the ending index, exclusive
Returns:
  A new CharChunk contained the URL encoded string
Throws:
  `IOException` - If an I/O error occurs

### urlEncode

protected void urlEncode(CharChunk out, ByteChunk bb) throws IOException

Throws:
  `IOException`