aha! As I was starting to suspect, the problem is with your output! You should have been getting "Wide character in print" warnings, though. The following will fix your display problems if you're using STDOUT.
use open ':std', ':locale';
As for the handling the fancy quotes, you could fix characters individually (e.g. s/\x{2019}/'/g;) or you could use Text::Unidecode.
In reply to Re^3: One bird, two Unicode names
by ikegami
in thread One bird, two Unicode names
by RCH
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |