バイナリ (".exe") ファイルから Unicode 文字列を取得したいと考えています。
そのようなコードを使用している場合:
`unicode_str = re.compile( u'[\u0020-\u007e]{1,}',re.UNICODE )`
動作しますが、分離されたシンボルのみを返すため、量指定子を 3 に変更しようとすると:
パイソン:
unicode_str = re.compile( u'[\u0020-\u007e]{3,}',re.UNICODE )
パール:
my @a = ( $file =~ /[\x{0020}-\x{007e}]{3,}/gs );
ASCII シンボルのみを取得します。Unicode シンボルはすべてなくなりました。
どこで間違いを犯したのでしょうか、それとも Unicode について何も知らないのでしょうか?
コメントからのコード:
パイソン:
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
パール:
$/ = "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"; }