always process as utf8 encoded octets when decoding

This works around a bug in perl 5.8.6 and below where substr will
sometimes return strings longer than requested for strings with the utf8
flag turned on.

This also has the advantage of speeding up the decoding operation, as
utf8 string operations are slower, usually by about 10%.  If the UTF-8
cache is disabled, as it is for perls compiled with -DDEBUGGING, the
difference is significantly larger.
updated version for haarg's patch