Well if I were a sys admin I would be glad that I found some broken file names (rather then not knowing they're there). Anyway, locale doesn't do much (I think pre-5.020 LC_CTYPES simply doesn't work with utf-8 locales) and encoding is problematic because it is global, which can break quite a lot of modules. Also, encoding is deprecated as of 5.018. I personally use
use utf8;
use open qw( :encoding(utf-8) :std );
use Encode;