my $unicode_character_hexadecimal_string = '0x20ac';
####
my $unicode_hex_codepoint = 0x20ac;
####
'0xE2 0x82 0xAC'
####
my $unicode_char = chr( $unicode_hex_codepoint );
####
'0x62 0x02 0x2C'
####
use strict;
my $uni_hex = 0x20ac;
my $uni_chr = chr($uni_hex);
my ( $u8_byts, $strpd_byts );
$u8_byts .= sprintf( "%02x ", $_) for ( unpack( "C*", $uni_chr ));
$strpd_byts .= sprintf( "%02x ", $_ & 0x7f ) for ( unpack( "C*", $uni_chr ));
( my $u8_bits = unpack( "B*", $uni_chr )) =~ s/(.{8})/$1 /g;
( my $strpd_bits = $u8_bits ) =~ s/\b1/0/g;
printf( "%s == %04x == %s == %s ^^ %s == %s\n",
$uni_chr, $uni_hex, $u8_byts, $u8_bits, $strpd_byts, $strpd_bits );