сейчас попробовал передавать спецсимволы в виде \u00d6 и тп. Передаются как-надо. Неужели придется писать перекодировщик символов в строке?
Вот такая функция получилась, может кому-то пригодится:

Код:
function funcReplace(txt:String){
var umlaut:Array = new Array("Ä","ä","Ö","ö","Ü","ü","ß");
var unicode:Array = new Array("\\u00c4","\\u00e4","\\u00d6","\\u00f6","\\u00dc","\\u00fc","\\u00df");
for (var i = 0; i<umlaut.length; i++){
txt = (txt.split(umlaut[i])).join(unicode[i]);
}
return txt;
}
За основу взял функцию iNils'a. Спасибо ему огромное!