How about BSD vis? It's basically perfect for this.
It translates all unprintable characters into escape sequences like \^C or (for characters above 128) \M-A. A corresponding unvis program can tr...
We're using KDE, and it supports switching between different keyboard layouts. You can add more layouts (and change the shortcut to switch between them if you like) in the settings.
Stuff like Jap...