# Adding an output encoding

If you want to use an output encoding that is not directly supported by Saxon (for a list of encodings that are supported, see Encodings) you can do this by writing a Java class that implements the interface `net.sf.saxon.charcode.PluggableCharacterSet`. You need to supply two methods: `inCharSet()` which tests whether a particular Unicode character is present in the character set, and `getEncodingName()` which returns the name given to the encoding by your Java VM. The encoding must be supported by the Java VM. To use this encoding, specify the fully-qualified class name as the value of the `encoding` attribute in xsl:output.

Alternatively, it is possible to specify the `CharacterSet` class to be used for a named output encoding by setting the system property, e.g. `-Dencoding.EUC-JP=my.charset.EucJP`; the value of the property should be the name of a class that implements the `PluggableCharacterSet` interface. This indicates the class to be used when the `xsl:output` element specifies encoding="EUC-JP".

Next