#!/usr/bin/env perl use strict; use warnings; use Encode; die "gimme args" unless @ARGV; $^I = ".unmangled.by.$$"; while (<>) { s/&#(\d+);/chr($1)/ge; $_ = decode_utf8($_, 1); s/(\P{ASCII})/ "&#" . ord($1) . ";" /ge; print; }