$x = "\xFC"; # ISO-Latin-1: 1 byte $x .= pack 'U0'; # append a zero length UTF-8 string # which will turn the whole thing into UTF-8! # hex dump: local($\, $,) = ("\n", " "); print map { sprintf "%02X", $_ } unpack 'C*', $x;