It is the SNMP agents job to localize the message properly.
It is the SNMP management tool's job to decode the message properly.
A WireShark trace will show whether your agent put the correct byte array on the wire.
If your message is Unicode the bytes should start with a valid Unicode preamble.
Also depending on your device type there are other areas in the agent's MIB that help the management tool decode the message properly.
For example the prtLocalizationTable for printers should show support for Unicode, and prtGeneralCurrentLocalization helps management tools know how to decode the message properly.