# Mal werden ä ö ü angezeigt, mal nicht, wieso?



## Nemesis_FF (23. Juni 2013)

Hallo Leute,

ich habe ein Problem. Für die Uni habe ich die Aufgabe bekommen, einen einfachen Webshop zu erstellen. Ich bin auch soweit fertig. Das Gerüst meiner Webseite sind 1 Container für die Überschrift, ein Container links für Links, einer rechts für den Content und ein Footer. Der Container rechts und links sind in einem Main-Container.

Ich habe auch alle Punkte meines Shops in das Design eingepflegt. Jetzt wollte ich das Gästebuch und die Registrierung noch einpflegen (alles immer in den rechten Container) nur leider werden jetzt plötzlich ä's, ö's und ü's nicht mehr richtig angezeigt. An sich hat mich das nie gestört, &auml; zu schreiben oder &uuml;, nur im Gästebuch kann ich es nicht beeinflussen. 

Als das Gästebuch noch auf einer einzelnen HTML-Seite ohne Container war, wurden ä's, ö's, ü's korrekt angezeigt, gleiches Spiel bei der Registrierung. Woran kann das liegen? An sich ist alles gleich, nur Container sind dazu gekommen.

So sieht der obere Abschnitt meines Skripts aus, wo alles funktioniert:

```
<?php
session_start();
if(isset($_SESSION["username"])) {
?>

<html>
<head>
	<title>Gästebuch</title>
	<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
	<div id="webseite">
	<div id="header">
    <h1>Gästebuch</h1>
	</div>
	<div id="einloggen">
	</div>
	<h2>Wie zufrieden waren Sie mit uns?</h2><br/>
    <a href="seite2.php">zurück zur Startseite</a>.	
	<?php
		if(!isset($_GET["page"])) {
    ?> 
    <form action="gbuch.php?page=3" method="post">
	<table>
		<tr>
			<td><b>Schreiben Sie hier Ihren Text rein:</b></td>
			<td><input type="longtext" name="eintrag"></td> 
			<td><input type="submit" value="Senden"></td>
		</tr>
	</table>
.
.
.
```


So sieht der Anfang aus, wo ö's, ä's und ü's falsch angezeigt werden:


```
<?php
session_start();
if(isset($_SESSION["username"])) {
?>
<html>
<head>
	<title>Meine Webseite</title>
	<link rel="stylesheet" type="text/css" href="design.css">
</head>
<body>
	<div id="webseite">
	<div id="header">
    <h1>G&auml;stebuch</h1>
	</div>
	<div id="einloggen">
	</div>
	<div id="login">
	</body>	
		</div>
	<div id="main">
	<div id="left">
	<a href="seite2.php">Startseite</a></br>	
	<a href="userwerkzeug.php">Metall-Shop</a></br>
	<a href="meinbereich.php">Mein Bereich</a></br>
	<a href="gbuch.php">G&auml;stebuch</a></br>
	<a href="mitarbeiter.php">Mitarbeiterbereich</a></br>
	</div>
	<div id="right">
	<?php
		if(!isset($_GET["page"])) {
    ?> 
    <form action="gbuch.php?page=3" method="post">
	<table>
		<tr>
			<td><b>Schreiben Sie hier Ihren Text rein:</b></td>
			<td><input type="longtext" name="eintrag"></td> 
			<td><input type="submit" value="Senden"></td>
		</tr>
	</table>
```

An sich unterscheidet es sich nicht, woran liegt das?

Hoffe sehr auf Hilfe und Danke schonmal. 

Liebe Grüße


----------



## sheel (23. Juni 2013)

Hi

a) Schreib wirklich Umlaute statt &xyz;
b) Speichere deine Dateien als UTF8 (oÄ.)
c) Sicherstellen, dass PHP einen entsprechenden Charset-Header mitschickt
d) Ein Metatag mit dem charset schadet auch nicht.


----------



## Nemesis_FF (23. Juni 2013)

Danke für deine Antwort. 



> b) Speichere deine Dateien als UTF8 (oÄ.)
> c) Sicherstellen, dass PHP einen entsprechenden Charset-Header mitschickt
> d) Ein Metatag mit dem charset schadet auch nicht.



Wie funktioniert das? Ich kann mir darunter leider nicht viel vorstellen.

Und warum geht es ohne die Container ohne all diese Schritte?


----------



## DreiPunkt141592654 (26. Juli 2013)

Hallo Nemesis_FF

Einmal Onkel Google (oder eine andere Suchmaschine deiner Wahl) konsuliteren würde wohl nicht schaden!....

Nichtsdestotrotz: Zumindest auf deine erste Frage kann ich dir eine Antwort geben:



> Speichere deine Dateien als UTF8 (oÄ.)


--> Wenn du beispielsweise Notepad++ verwendest, wähle auf der Registerkarte "Enocoding" die Option "UTF-8 without BOM"



> Sicherstellen, dass PHP einen entsprechenden Charset-Header mitschickt


--> Schreibe dazu folgenden Code als allererstes Statement in deine PHP-Datei: 
	
	
	



```
header("Content-Type: text/html; charset=utf-8");
```



> Ein Metatag mit dem charset schadet auch nicht.


--> Ergänze deinen HTML <head>-Tag dazu durch 





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


 (als erstes)




Gruss PI


----------

