Also es geht wenn man das hier macht:
var str = decodeURI(window.location.toString());
in der url stehen umlaute und leerzeichen korrekt in uft8, aber wenn man window.location.tostring macht kriegt man kein utf8! aber wenn man den ganzen großén scheiß dann decodeURI macht kriegt man wieder utf8 und alles funktioniert!