#!/usr/bin/perl use strict; use warnings; my $str = q|cat’s|; printit($str, 'original'); (my $str1 = $str) =~ s/\x092/'/; printit($str1, 'hex only two nybbles'); (my $str2 = $str) =~ s/\x92/'/; printit($str2, 'seems good here'); (my $str3 = $str) =~ s/\x{092}/'/; printit($str3, 'seems good here'); (my $str4 = $str) =~ tr/\x{092}/'/d; printit($str4, 'seems good here'); sub printit { my ($v, $msg) = @_; my $h = unpack "H*", $v; $h =~ s/(..)/0x$1 /g; print "$h\t$v\t$msg\n"; } __END__ 0x63 0x61 0x74 0x92 0x73 cat?s original 0x63 0x61 0x74 0x92 0x73 cat?s hex only two nybbles 0x63 0x61 0x74 0x27 0x73 cat's seems good here 0x63 0x61 0x74 0x27 0x73 cat's seems good here 0x63 0x61 0x74 0x27 0x73 cat's seems good here