Io sistemerei il problema alla radice rimuovendo tutti i caratteri "speciali" dal titolo, dalla directory contenente i file a cui si fa riferimento e sistemando i riferimenti nel file HTML:
codice:
#!/bin/bash
for i in *.html
do
    echo Processing $i...
    bn=$(basename "$i" .html)
    enc="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$bn")"
    target=$(echo -n $enc | sed 's/%../_/g')
    sed -i "s/$enc/$target/g" "$i"
    mv "${bn}_files" "${target}_files"
    mv "$i" "${target}.html"
done