The mapfile LABEL object’s parameter named ENCODING
can be used to convert strings from its original encoding system into
one that can be understood by the True Type Fonts. The ENCODING
parameter accepts the encoding name as its parameter.

MapServer uses GNU’s libiconv library (
http://www.gnu.org/software/libiconv/ ) to deal with encodings.
The libiconv web site has a list of supported encodings. One can also
use the “iconv -l” command on a system with libiconv installed to get
the complete list of supported encodings on that specific system.

So, theoretically, every string with an encoding system supported by
libiconv can be displayed as labels in MapServer as long as it has a
matching font-set.

Now you can simply add the ENCODING parameter to your mapfile LAYER
object, such as:

MAP...LAYER...CLASS...LABEL...ENCODING"SHIFT_JIS"ENDENDENDEND

One of the benefits of having an “ENCODING” parameter within the LABEL
object is that different LAYERS with different encoding systems can be
combined together and display labels within a single map. For
example, labels from a Layer using Shapefile as it source which
contains attributes in SHIFT-JIS can be combined with a Layer from a
PostGIS database server with EUC-JP attributes. A sample Mapfile can
look like this:

During initial implementation, this functionality was tested using
the different Japanese encoding systems: Shift-JIS, EUC-JP, UTF-8,
as well as Thai’s TIS-620 encoding system.

Examples of encodings for the Latin alphabet supported by libiconv
are: ISO-8859-1 (Latin alphabet No. 1 - also known as LATIN-1 -
western European languages), ISO-8859-2 (Latin alphabet No. 2 -
also known as LATIN-2 - eastern European languages), CP1252
(Microsoft Windows Latin alphabet encoding - English and some other
Western languages).