Subject: | Simple renderers break on non-ascii characters (but in non-fatal way) |
Simple renderers (both ::Render::Simple and ::Widget family of roles) use
HTML::Entities::encode_entities() which by default tries to encode all
non-ascii characters into named entities.
Not only it is slow and unnecessary but it also breaks multi-byte data as
it encodes octets which are actually a single character separately.
Browsers never combine them back.
Simple fix is to use two argument version of encode_entities($str,
q{"'<>&}) to only encode unsafe characters.
Using a series of s/// operations will be faster, btw.