By default, arbitrary data with the utf8 flag on will be treated as unicode characters (equivalent to latin-1 through codepoint 255). But by default without the flag on, it
is treated as specified by the C locale, which is pretty much just ASCII. Try it:
(remove the -CO if you have a non-utf8 terminal)
$ perl -CO -wle'print lc "\xc9"; print lc substr "\x{100}\xc9", 1'
This outputs É then é.