Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Umlaute für eine Get Übertragung konvertieren





Frage

Moin Ich muss an einer Stelle Umlaute per Get übertragen. Leider erzeugt das beim Apache einen "Internal Server Error". Gibt es eine Funktion die automatisch aus allen Umlauten ASCII Codes oder sowas macht und später diese zurückverwandelt? Ich suche schonmal weiter ... Gruß ThomasOOP

Antwort 1 von Nessus

Hi,

urlencode und urldecode sind die Zauberworte.
http://ffm.junetz.de/members/reeg/DSP/node14.html

Nessus

Antwort 2 von Thomasoop_ohne

hmm dachte schon das wäre es gewesen Nessus aber leider mag er das auch nicht

Fehlermeldung aus dem Apache Log

(22)Invalid argument: utf8 to ucs2 conversion failed on this string: REDIRECT_QUERY_STRING=street=Talbotstra\xdfe
[Tue Aug 16 13:20:30 2005] [error] [client 10.104.1.50] (22)Invalid argument:

das \xdf ist dann das ß

anscheinend liegt da eine grundsätzlich fehlkonfiguration des apaches vor

mist

Antwort 3 von Fich

Ich verstehe es auch nicht. Aber nur mal als Hinweis:
Das "ß" wird richtig als "%C3%9F" codiert, nicht als "%DF"! Das sieht man, wenn man im Browser ein "ß" innerhalb eines Textfeldes eines GET-Formulars abschickt.
Hat wohl irgendwas mit utf8 zu tun. Falls Du die Lösung findest, bitte posten!

Antwort 4 von ThomasOOP_Ohne

(not)lösung
javascript

			zlvArbe = new String(zlvtext);
			zlvArbe = zlvArbe.replace(/ß/, ´225´);
			zlvArbe = zlvArbe.replace(/ä/, ´132´);
			zlvArbe = zlvArbe.replace(/ö/, ´148´);
			zlvArbe = zlvArbe.replace(/ü/, ´129´);
			zlvArbe = zlvArbe.replace(/Ä/, ´142´);
			zlvArbe = zlvArbe.replace(/Ö/, ´153´);
			zlvArbe = zlvArbe.replace(/Ü/, ´154´);

bzw
PHP

	function uml_encode ( $zlvtext ) {
		$zlvtext = str_replace(´ß´, ´225´, $zlvtext );
		$zlvtext = str_replace(´ä´, ´132´, $zlvtext );
		$zlvtext = str_replace(´ö´, ´148´, $zlvtext );
		$zlvtext = str_replace(´ü´, ´129´, $zlvtext );
		$zlvtext = str_replace(´Ä´, ´142´, $zlvtext );
		$zlvtext = str_replace(´Ö´, ´153´, $zlvtext );
		$zlvtext = str_replace(´Ü´, ´154´, $zlvtext );
	  return $zlvtext;
	}

	function uml_decode ( $zlvtext ) {
		$zlvtext = str_replace(´225´, ´ß´, $zlvtext );
		$zlvtext = str_replace(´132´, ´ä´, $zlvtext );
		$zlvtext = str_replace(´148´, ´ö´, $zlvtext );
		$zlvtext = str_replace(´129´, ´ü´, $zlvtext );
		$zlvtext = str_replace(´142´, ´Ä´, $zlvtext );
		$zlvtext = str_replace(´153´, ´Ö´, $zlvtext );
		$zlvtext = str_replace(´154´, ´Ü´, $zlvtext );
	  return $zlvtext;
	}


immer den weg des geringsten wiederstandes gehen ...

Antwort 5 von Fich

Mußt halt aufpassen, daß Du nicht mal aus versehen eine Zahl sendest und diese dann als Umlaut ankommt. ;-)

Antwort 6 von ThomasOOP_ohne

es ist eine reine strassensuche ... ;)

Antwort 7 von jom

wenn du mehrere sachen saugen willst versuchs doch mit mget.

Antwort 8 von Nessus

@jom

ROTFL, deine Antwort ist doch nur daneben ;-)

Nessus

Antwort 9 von ThomasOOP_ohne

glaube ich muss mein passwort mal rauskramen um endlich wieder bewerten zu können ;)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: