hi,
Wenn ich encodeURIComponent verwende, habe ich das gleiche Problem, wie mit meinem Verschlüsselungsumweg encode2(). Also z.B. wird aus einem ä ein ä.
Daher: Aus welchem Grund ist escape() falsch?
escape() ist nicht falsch, schau Dir mal an was es macht, das kannst Du in der Browser-Adresszeile schon testen:
javascript:alert(escape('ä'))
javascript:alert(encodeURI('ä'))
Du siehst in der Ausgabe Folgendes:
escape => %E4
encodeURI => %C3%4
Aus diesen Escape-Sequenzen entstehen serverseitig Bitfolgen, die Bitfolge, die in hex E4 enstspricht ist ein 'ä' wenn es ISO-8859-1 codiert ist. Die Bitfolge C3A4 (2 byte, 16 Bit) entspricht auch einem 'ä' das jedoch UTF-8 codiert ist. E4 ist gleichzeitig auch der Codepoint für das 'ä' im Unicode-System.
Deine Datei, die serverseitig geschrieben wird, enthält wiederum bytes, je nachdem, wie Du die dem Request mitgibst, sind das für ein 'ä' in ISO 1 byte (escape), in utf8 hingegen 2 byte (encodeURI).
Gute Nacht,
Horst Hausmann