I want to get Unicode strings from binary (".exe") files.

When I use this code:
'unicode_str = re.compile( u'[\u0020-\u007e]{1,}',re.UNICODE )'
this works, but only returns split characters, so when I try to change the quantifier to 3:
Python: unicode_str = re.compile( u'[\u0020-\u007e]{3,}',re.UNICODE )
Perl: my @a = ( $file =~ /[\x{0020}-\x{007e}]{3,}/gs );
I get only ASCII characters, all Unicode characters have disappeared.
Where did I make a mistake or maybe I don't know anything about Unicode?
Code from comments:
Python:
File = open( sys.argv[1], "rb" )
FileData = File.read()
File.close()
unicode_str = re.compile( u'[\u0020-\u007e]{3,}',re.UNICODE )
myList = unicode_str.findall(FileData)
for p in myList:
print p
Perl:
$/ = "newline separator";
my $input = shift;
open( File, $input );
my $file = <File>;
close( File );
my @a = ( $file =~ /[\x{0020}-\x{007e}]{3,}/gs );
foreach ( @a ) { print "$_\n"; }
peoff source
share