Over a million developers have joined DZone.

String Encoding with Mule

DZone's Guide to

String Encoding with Mule

· Integration Zone ·
Free Resource

Continue to drive demand for API management solutions that address the entire API life cycle and bridge the gap to microservices adoption.  Brought you to you in partnership with CA Technologies.

Sometimes one would want to handle strings which contain characters not included in UTF-8 or the default encoding (set in mule-deploy.properties).

In these scenarios a different encoding which is capable of handling these characters (such as UTF-16 or UTF-32) can be used. To do so the default encoding can be easily changed by making a few modifications according to the type of transformer being used.

Changing Encoding with the Datamapper

When using the datamapper with data such as XML, one can easily choose the encoding by clicking on the settings button in the mapping (this should be set properly for both input and output) :

Settings button datamapper

Settings button datamapper

A similar panel to the one below should appear:
Datamapper encoding settings panel

Changing Encoding when using “simple” transformers

When using transformers such as object-to-string or byte-array-to-string, one would think that setting the “encoding” attribute on the transformer would do the trick:

<byte-array-to-string-transformer doc:name="Byte Array to String" encoding="UTF-16"/>

Unfortunately this doesn’t work, since the current Mule’s behaviour is to use this property just to set the MULE_ENCODING outbound property after the transformation is done. However, instead we should make sure that MULE_ENCODING outbound property is set properly before invoking the transformer. The transformer would then be able to transform the payload correctly for us.

<set-property propertyName="MULE_ENCODING" value="UTF-16" doc:name="Property" />
<byte-array-to-string-transformer doc:name="Byte Array to String"/>

Discover how organizations are modernizing their application architectures for speed and agility from the growing API economy.  Brought to you in partnership with CA Technologies.


Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}