Zur Navigation

Umlaute werden nicht richtig angezeigt

1 Tilman

[Edit Jörg: die folgenden Beiträge wurden aus diesem Thread abgetrennt]

Jetzt habe ich aber ein Problem:

Statt den Umlauten steht jetzt jeweils ein ? und die Webseite wird nicht mehr richtig angezeigt.

14.08.2008 12:53 | geändert von Jörg: 19.08.2008 10:55

2 Rudy

Dann hast Du wahrscheinlich ein Problem mit der Kodierung. Im obigen Beispiel habe ich utf-8 verwendet. Du benötigst wahrscheinlich iso-8859-1. Ohne Code oder Beispielseite lässt sich aber keine genauere Aussage treffen.

14.08.2008 13:02

3 Tilman

Welche Codierung muss ich benutzen, damit das hier funktioniert. Oder geht das auch anders?

14.08.2008 13:14

4 Jörg

Du musst einfach nur die Meta-Angabe an den von dir verwendeten Zeichensatz anpassen:

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

14.08.2008 13:37

5 Tilman

Habe ich ja auch gemacht, so, wie Rudy es erklärt hat.

15.08.2008 13:32

6 Jörg

Auf welchen Zeichensatz hast du die Meta-Angabe denn angepasst?

so, wie Rudy es erklärt hat

Auf welchen Satz beziehst du dich dabei? Rudy hat geschrieben, dass sich ohne Beispielseite keine genauere Aussage treffen lässt. Wir können nicht wissen, welchen Zeichensatz du verwendest

15.08.2008 15:19 | geändert: 15.08.2008 15:21

7 Tilman

Soll ich euch einfach den ganzen Code der Webseite zeigen?:


<?php
  if (strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
    print_r($_POST);
    die();
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"><head>

<title>Registrierung</title>
 <meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="../css/format.css" type="text/css">
<link rel="stylesheet" href="../css/infotxt.css" type="text/css">
<link rel="stylesheet" href="../css/formular.css" type="text/css">
<link rel="stylesheet" media="print" type="text/css" href="../css/print.css">

<script type="text/javascript" src="../scripts/webtoolkit.sha1.js"></script>
  <script type="text/javascript">
    function encodepwd() {
      document.getElementById('hash').value = SHA1(document.getElementById('password').value);
      document.getElementById('password').value = '';
      return true;
    }
  </script>

</head>
<body>
<table width="920" border="0" cellspacing="0" cellpadding="0" id="maintable">
<? include ("../scripts/head.php"); ?>
<? include ("../menu.php"); ?>
<tr><td width="510" id="inhalt">


<h2>Registrierung</h2>
<div style="width: 500px; border: 1px solid lightgrey;">
<div class="kuschrift">Registrierung</div>
<div class="kasten">


Alle mit * gekennzeichneten Felder sind Pflichtfelder.<br><br>
                                                           <br>
<form name="Registrierung" method="post"  style="margin: 0px; padding: 0px;" action="eintragen.php" onsubmit="return encodepwd();">

<div style="float: left; width: 150px;">
<? if (isset($_POST['username'])) {
    if ($_POST['username'] == '') {
        echo "<span class='redtxt'>Username*</span>";
    }
    else { echo "Username*"; }
    }
    else
   {
   echo "Username*";
   }

    ?>

</div>
<div style="padding-bottom: 1px; padding-left: 5px; padding-right: 5px; width: 330px; float: left;">
<input type="text" maxlength="16" name="username" <? if (isset($_POST['username'])) {
    if ($_POST['username'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?>value="<? echo $_POST['username'] ?>">
<a class="tooltip"><img src="../images/info_icon.jpg" border="0" height="10" width="7"><span>Wähle einen Username mit zwischen 4 und 16 Zeichen. Dein Username darf Groß- und Kleinbuchstaben und Zahlen enthalten. Bitte nimm kein Promi- oder Markenname.</span></a>
</div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
<? if (isset($_POST['userpass'])) {
    if ($_POST['userpass'] == '' || $_POST['userpass'] != $_POST['passwied'] || $_POST['passwied'] == '') {
        echo "<span class='redtxt'>Passwort*</span>";
    }
    else { echo "Passwort*"; }
    }
    else
   {
   echo "Passwort*";
   }

    ?>

</div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="password"  name="userpass" id="password" <? if (isset($_POST['userpass'])) {
    if ($_POST['userpass'] == '' || $_POST['userpass'] != $_POST['passwied'] || $_POST['passwied'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?>>
<a class="tooltip"><img src="../images/info_icon.jpg" border="0" height="10" width="7"><span>Bitte benutze ein möglichst sicheres Passwort. Nimm niemals dein Usernamen als Passwort!</span></a>
</div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
<? if (isset($_POST['passwied'])) {
    if ($_POST['passwied'] == '' || $_POST['userpass'] != $_POST['passwied'] || $_POST['userpass'] == '') {
        echo "<span class='redtxt'>Passwort wiederholen*</span>";
    }
    else { echo "Passwort wiederholen*"; }
    }
    else
   {
   echo "Passwort wiederholen*";
   }

    ?>
</div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="password"  name="passwied" id="password" <? if (isset($_POST['passwied'])) {
    if ($_POST['passwied'] == '' || $_POST['userpass'] != $_POST['passwied'] || $_POST['userpass'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?>></div><div style="clear: left;"></div>
&nbsp;

<div style="float: left; width: 150px;">
<? if (isset($_POST['geschlecht'])) {
    if ($_POST['geschlecht'] == '') {
        echo "<span class='redtxt'>Geschlecht*</span>";
    }
    else { echo "Geschlecht*"; }
    }
    else
   {
   echo "Geschlecht*";
   }

    ?></div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<? $moeglich = array('männlich', 'weiblich');?>
<select name="geschlecht" <? if (isset($_POST['geschlecht'])) {
    if ($_POST['geschlecht'] != 'männlich' || $_POST['geschlecht'] != 'weiblich') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?>><?
foreach ($moeglich as $geschlecht) {
    echo '<option value="' . $geschlecht . '"';
    if ($geschlecht == $_GET['geschlecht']) {
        echo ' selected';
    }
    echo '>' . $geschlecht . '</option>';
}
?></select>
</div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
<? if (isset($_POST['vorname'])) {
    if ($_POST['vorname'] == '') {
        echo "<span class='redtxt'>Vorname*</span>";
    }
    else { echo "Vorname*"; }
    }
    else
   {
   echo "Vorname*";
   }

    ?></div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="text"  name="vorname" <? if (isset($_POST['vorname'])) {
    if ($_POST['vorname'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?> value="<? echo $_POST['vorname'] ?>"></div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
<? if (isset($_POST['nachname'])) {
    if ($_POST['nachname'] == '') {
        echo "<span class='redtxt'>Nachname*</span>";
    }
    else { echo "Nachname*"; }
    }
    else
   {
   echo "Nachname*";
   }

    ?></div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="text"  name="nachname" <? if (isset($_POST['nachname'])) {
    if ($_POST['nachname'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?> value="<? echo $_POST['nachname'] ?>"></div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
<? if (isset($_POST['email'])) {
    if ($_POST['email'] == '') {
        echo "<span class='redtxt'>E-Mail-Adresse*</span>";
    }
    else { echo "E-Mail-Adresse*"; }
    }
    else
   {
   echo "E-Mail-Adresse*";
   }

    ?></div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="text" name="email" <? if (isset($_POST['email'])) {
    if ($_POST['email'] == '') {
        echo "class='formerror'";
    }
    else { echo "class='eingabeform'"; }
    }
    else
   {
   echo "class='eingabeform'";
   }

    ?> value="<? echo $_POST['email'] ?>"></div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
Geburtsdatum*</div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<select>
<?
for ($i = 1; $i <= 31; $i++) {
    $birthdayd = sprintf("%02d", $i);
    echo '<option value="' . $birthdayd . '"';
    if ($birthdayd == $_POST['birthdayd']) {
        echo ' selected';
    }
    echo '>' . $birthdayd . '</option>';
}

?></select>
<select>
<?
for ($i = 1; $i <= 12; $i++) {
    $birthdaym = sprintf("%02d", $i);
    echo '<option value="' . $birthdaym . '"';
    if ($birthdaym == $_POST['birthdaym']) {
        echo ' selected';
    }
    echo '>' . $birthdaym . '</option>';
}

?></select>
<select>
<?
for ($i = 1978; $i <= 2000; $i++) {
    $birthdaym = sprintf("%02d", $i);
    echo '<option value="' . $birthdaym . '"';
    if ($birthdaym == $_POST['birthdaym']) {
        echo ' selected';
    }
    echo '>' . $birthdaym . '</option>';
}

?></select>
<a class="tooltip"><img src="../images/info_icon.jpg" border="0" height="10" width="7"><span><b>Beachte:</b> Um dich registrieren zu können, musst du mindestens 13 Jahre alt sein.</span></a>

</div><div style="clear: left;"></div>

<div style="float: left; width: 150px;">
Sicherheitscode*</div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<img src="../captcha/captcha.php" border="0" title="Sicherheitscode" width="140" height="40"></div><div style="clear: left;"></div>


<div style="float: left; width: 150px;">&nbsp;</div>
<div style="padding-left: 5px; padding-right: 5px; padding-bottom: 1px; width: 330px; float: left;">
<input type="text" name="sicherheitscode" size="5" class="eingabeform">
<a class="tooltip"><img src="../images/info_icon.jpg" border="0" height="10" width="7"><span>Der Sicherheitscode wird dafür benötigt, um die Webseite vor Spammern zu schützen.</span></a>

</div><div style="clear: left;"></div>




                                                                  <br><br>

<input name="einverstanden" type="checkbox">Ja, ich bin mit den Regeln einverstanden.
<br><br>
<input type="hidden" name="action" value="send">
<input type="submit" name="registrieren" value="registrieren"></form>

</div>
</div>

</td>
<td width="390" id="tdright">

</td>
</tr>
<? include ("../scripts/bottomline.php"); ?>
</table>
</body>
</html>

19.08.2008 10:48

8 Jörg

Der Code sagt (über die Meta-Angabe) nur aus, in welchem Zeichnsatz die Zeichen angezeigt werden soll - aber nicht, in welchem Zeichnsatz die Zeichen tatsächlch ausgegeben werden. Du kannst das aber selber testen, indem du im Browser unter Ansicht -> Zeichenkodierung verschiedene Zeichensätze ausprobierst. Wenn die Umlaute korrekt angezeigt werden, hast du den passenden Zeichensatz gefunden.

19.08.2008 11:00 | geändert: 19.08.2008 11:01

9 Tilman

Hallo Jörg!

Äh, Entschuldigung! Der Code, den ich euch geschickt habe, ist aus meinem Editor, da werden alle Umlaute noch so angezeigt. Der wandelt die dann aber für mich um (z.B. ä => &aauml;)

Habe ich es schon gesagt? Nicht nur die Umlaute werden falsch angezeigt, sondern auch Hintergrundgrafiken usw.

Ich habe mal nachgeschaut unter Ansicht > Zeichencodierung. Habe es mit vielen probiert, immer noch falsch.

19.08.2008 11:27

10 Jörg

&auml; sollte kein Problem bereiten. Als was wird es denn angezeigt?

Habe ich es schon gesagt? Nicht nur die Umlaute werden falsch angezeigt, sondern auch Hintergrundgrafiken usw.

Das ist wohl kein zeichensatzspezifisches Problem - es sei denn, du verwendest Umlaute in Dateinamen (was eh nicht empfehlenswert ist). Stimmen denn die Pfade?

Ich habe mal nachgeschaut unter Ansicht > Zeichencodierung. Habe es mit vielen probiert, immer noch falsch.

Das einfachste wäre es, wenn du mal eine Beispielseite hochlädtst, dann könnte man das Problem direkt analysieren.

19.08.2008 11:46