in reply to Map octets to set of characters

Your approach using pack('u') and tr/// is likely to be difficult to beat for speed or brevity.

However if you want to want to conform why not just do what everyone else does, use MIME::Base64.