Make substitutions for most invalid characters rather than stripping them.
tree4b8ebd325f4624a22372005a38fc20966c365db7
drwxr-xr-x - Cheetah
-rw-r--r-- 1217 README
-rw-r--r-- 53329 Zeroconf.py
-rw-r--r-- 7236 beacon.py
-rw-r--r-- 11644 config.py
drwxr-xr-x - content
-rw-r--r-- 14116 httpserver.py
-rw-r--r-- 6938 lrucache.py
-rwxr-xr-x 22746 metadata.py
-rw-r--r-- 8278 mind.py
drwxr-xr-x - mutagen
-rw-r--r-- 7715 plugin.py
drwxr-xr-x - plugins
-rw-r--r-- 3262 pyTivo.conf.dist
-rwxr-xr-x 1906 pyTivo.py
-rw-r--r-- 5332 pyTivoConfigurator.pyw
-rw-r--r-- 1236 pyTivoService.py
drwxr-xr-x - templates
drwxr-xr-x - xmpp