in reply to Comparing string hex / korean
리작 \xeb\xa6\xac\xec\x9e\x91
You can clearly see the lines are different. You can easily replace the codes with their corresponding bytes:
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; chomp( my $korean = <> ); chomp( my $hex = <> ); $hex =~ s/\\x(..)/chr hex $1/ge; say $korean eq $hex ? 'Same' : 'Different';
Or replace the encoded korean characters by their hex equivalents by
$korean =~ s/(.)/'\\x' . sprintf '%x', ord $1/ge;
If you need to work with UTF-8 encoded files, you should open them with the :encoding(UTF-8) layer. In such a case, you need to encode the string before further processing it:
utf8::encode($korean);
|
|---|