Parameterübergabe HTML --> aspx-Seite

Baste

Mitglied
Hi Leutz.

Ich hab folgendes "seltsames" Problem:
Ich erzeuge auf einer html-Seite ein Formular um einen Suchbegriff einzugeben und abzusenden. Code:

Code:
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<form accept-charset="utf-8" BOTID="0" METHOD="POST" target="_self" ACTION="http://.../Default.aspx">
   <tr>
      <td bgcolor="#f7f7f7" valign=top><p class=flat>&nbsp;Suchbegriff:&nbsp;</p></td>
      <td bgcolor="#f7f7f7" valign=top><p class=flat><input type="text" size="10" name="begriff" value="" />
       &nbsp;<input type="Submit" name="submit" value="&nbsp;OK&nbsp;">&nbsp;</p> </td>
   </tr>
</form>
</table>

Dieser Wert ("begriff") wird eigentlich auch an meine aspx-Seite übergeben und verarbeitet.
Hier ein Codeausschnitt:

Code:
if (!Page.IsPostBack) {
      String begriff;
      try {
        begriff = Request.Params["Begriff"].ToString();
      } catch {
        begriff = "";
      }
      if (begriff != "") {
        t.Text = Request.Params["Begriff"].ToString();

Nun zu meinem Problem... In diesem Suchfeld können auch Umlaute eingegeben werden. Beim Firefox funktioniert alles einwandfrei. Allerdings soll hauptsächlich der Internet Explorer verwendet werden. Wenn ich nun hier z.B. "Schäfer" eingeb, wird scheinbar nur "Schfer" übergeben, er verschluckt irgendwie die Umlaute. Werden Worte ohne Umlaute eingegeben funktioniert es.
Habe auch schon bei der Default.aspx ein Charset (utf-8) festgelgt, brachte auch nichts.
Wenn ich allerdings im Internet Explorer bei "Codierung" "Unicode (UTF-8)" einstell, dann gehts. Das ist aber auch keine Lösung, da standartmäßig "Westeuropäisch (ISO)" eingestellt ist.

Hat jemand evtl. eine Idee woran das liegen könnte, wäre echt super? Sitz nun schon mehrer Stunden an diesem Problem ;(

Danke im Vorraus.
 
Die Parameter wirst evtl umformen müssen bevor Du sie sendest (ä->ae, ß->ss). Kannst eine HT dafür verwenden... Genaueres kann ich Dir im Moment leider nicht sagen.

Btw. Exeptions als Programmflusssteuerung zu verwenden ist Schwachsinn. ;)
Falsch:
C#:
 try {
        begriff = Request.Params["Begriff"].ToString();
}
catch {
        begriff = "";
}

Richtig:
C#:
object paramObject = Request.Params["Begriff"];
if ( paramObject != null )
        begriff = paramObject.ToString();
else
        begriff = string.Empty;
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.

Hab auch schon irgendwie an eine Umformung gedacht, nur weis ich nicht so richtig wie ;)

Was meinst du genau mit
Kannst eine HT dafür verwenden...
?
Was mich eben bissl irritiert ist, dass im firefox alles geht.

Gruß baste
 
Es hat scheinbar doch irgendwas mit der Kodierung zu tun. Wenn ich alles auf utf-8 stelle, dann gehts. Nur steht anstelle eines §-Zeichens ein ? und das is auch nich gut ;)

Code:
Code:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<title>.:Suche:.</title>
</head>
...
<form accept-charset="utf-8" BOTID="0" METHOD="POST" target="_self" ACTION="http://.../Default.aspx">
   <tr>
      <td bgcolor="#f7f7f7" valign=top><p class=flat>&nbsp;Suchbegriff:&nbsp;</p></td>
      <td bgcolor="#f7f7f7" valign=top><p class=flat><input type="text" size="10" id="text" name="begriff" value="" />
       &nbsp;<input type="Submit" name="submit"  value="&nbsp;OK&nbsp;">&nbsp;</p> </td>
   </tr>
</form>
 
Christian Kusmanow hat gesagt.:
..
Mit der Hashtable meinte ich, dass Du eine HT mit den Strings füllst, die mit den Umlauten ersetzt werden sollen.
..

Von eine Ersetzung sollte man absehen, da in bestimmten Fällen falsche Ergebnisse erzeugt werden.
zum Beispiel:
Israel, Michael, Poet, Goethe, Phoenix, soebend, Neuer, Bauer, Feuer, Konsequenzen, Zuschauer...
 
Zuletzt bearbeitet:
Fehler behoben. Musste beim Abspeichern der html-Datei bei Codierung noch utf-8 angeben.
Trotzdem Danke. Schönes WE.
 
Zurück