Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

String Encoding with Mule

DZone's Guide to

String Encoding with Mule

· Integration Zone ·
Free Resource

The new Gartner Critical Capabilities report explains how APIs and microservices enable digital leaders to deliver better B2B, open banking and mobile projects.

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"/>

The new Gartner Critical Capabilities for Full Lifecycle API Management report shows how CA Technologies helps digital leaders with their B2B, open banking, and mobile initiatives. Get your copy from CA Technologies.

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}