#!/usr/bin/perl -lw $a="à"; # A high latin1 character, doesn't even need unicode print '$a Normal substr: ', ord(substr($a,0,1)); { use bytes; print '$a Bytes substr: ', ord(substr($a,0,1)); } $b = $a . chr(256); chop $b; print '$a equals $b, but $b is internally in UTF8' if $a eq $b; print '$b Normal substr: ', ord(substr($b,0,1)); { use bytes; print '$b Bytes substr: ', ord(substr($b,0,1)); } Giving: $a Normal substr: 224 $a Bytes substr: 224 $a equals $b but $b is internally in UTF8 $b Normal substr: 224 $b Bytes substr: 195 #### use Encode; $octets = encode("utf8", $string);