Maybe in your string then, the number of octets and number of characters is the same?
The following shows that Perl does not guess the encoding of strings but assumes it:
# Perl assumes it's a Latin-1 string
> perl -MEncode -wle print+length(qq(\x{c3}\x{a4}))
2
# Perl gets told to decode the string from UTF-8
> perl -MEncode -wle print+length(decode('UTF-8',qq(\x{c3}\x{a4})))
1
# My terminal is Latin-1, which happens to match Perls default assumpt
+ion
> perl -MEncode -wle print(length(decode('Latin-1',qq(ä))))
1
Update: choroba pointed out that I mispasted the second example - now corrected. |