# Umlaute in HTML



## Grunge (2. Juli 2008)

Hi Leute,

hab mal ne Frage, und zwar kann man die Umlaute automatisch ersetzen lassen?! Wenn ich im Editor normal "Gästebuch" als beispiel schreibe, dann schreibt der Browser "GÃ¤stebuch" Damit ich nun vom Browser das richtige Wort ausgegeben bekomme, muss ich ja "G&Auml;stebuch" im editor eingeben. Gibts da nen Tipp das zu vereinfachen!


Gruß


----------



## Gumbo (2. Juli 2008)

Du scheinst die Daten mit UTF-8 zu kodieren. Dann gib diese Kodierung einfach an passender Stelle (am besten im HTTP-Header) an.


----------



## Abro (2. Juli 2008)

MS Wordpad / Win XP kann UTF-8 nicht kodieren (Notepad aber schon), steht der Umlaut nach erneutem öffnen immer noch korrekt da?

Wenn du Zeichen unbedingt maskieren möchtest kannst du das per PHP mit der Funktion htmlentities() machen.
Ist allerdings ziemlich sinnlos wenn UTF-8 verwendet wird ;O)


----------



## Grunge (2. Juli 2008)

wie kann ich das denn im head machen!?


----------



## Loomis (2. Juli 2008)

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


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

Sollte das Dokument selbst nicht auch UTF-8 kodiert sein?


----------



## Grunge (2. Juli 2008)

Jops klappt, danke =)


----------



## UncleB (7. Juli 2008)

Hey, Ich hab gleiches Prob wie man 
hier bei den "News" sehen kann.
ich habe 

```
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
```
In den head bereicht geschrieben und 

```
header('Content-Type: text/html; charset=utf-8');
```
Auch vor dem erstem "print"
Aber es passiert nix stattessen kommt der Fehler:
"Warning: Cannot modify header information - headers already sent by (output started at /is/htdocs/36059/www.sv-forsting-pfaffing.de/np/index.php:10) in /is/htdocs/36059/www.sv-forsting-pfaffing.de/np/index.php on line 11" wie man ja ganz oben sehen kann..
Was mach ich falsch?


----------



## Loomis (7. Juli 2008)

Hi,
es darf keine Ausgabe vor header() stattfinden: Häufig auftretende Fehler


----------



## UncleB (7. Juli 2008)

Hab ich ja auch nicht...
Die ersten zeilen der index.php..

```
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>SV Forsting-Pfaffing</title>
<link rel="stylesheet" media="all" href="style.css">
<link rel="stylesheet" media="all" href="iefixes.css">
</head>

<body>
<?
header('Content-Type: text/html; charset=utf-8');  
$section = $_GET['section']; 
	switch ($section) {
  case gaestebuch:
......
.....
```


----------



## Loomis (7. Juli 2008)

Der header() muss vor jeglicher HTML Ausgabe stehen, und du hast einige Zeilen HTML *vor* dem header()!


----------



## UncleB (7. Juli 2008)

So richtig?


```
<?
header('Content-Type: text/html; charset=utf-8');  
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>SV Forsting-Pfaffing</title>
<link rel="stylesheet" media="all" href="style.css">
<link rel="stylesheet" media="all" href="iefixes.css">
</head>
```

Weil funktionieren tuts immer noch nicht,
Die Fehlermeldung is allerdings weg..


----------



## Loomis (7. Juli 2008)

Ja das ist richtig. Wie werden denn die News gespeichert?


----------



## Abro (7. Juli 2008)

dann hast du ja schon mal nen teil des problems gelöst.
jetzt gehts noch drum, dass auch wirklich alles utf8 ist.

also schau nach den dateicodierungen und stell alle ggf von iso auf utf8 um.
wenn du deine daten aus einer datenbank beziehst, musst du diese, sowie die felder, die varchar/text/... beinhalten auch umstellen.
beim eintragen neuer texte per formular musst du die übergebenen inhalte auch noch mit der funktion utf8_encode() umwandeln.

das wärs dann aber.

_(sorry für mein kleinschreiben, geht grad nicht anders -.-)_


----------



## Gumbo (7. Juli 2008)

Was meinst du mit es funktioniere immer noch nicht? Was genau funktioniert nicht?


----------



## Abro (7. Juli 2008)

klick doch mal seinen link an ;O)


----------



## UncleB (7. Juli 2008)

Loomes hat gesagt.:


> Ja das ist richtig. Wie werden denn die News gespeichert?



mysql Datenbank
Hätte nicht gedacht das des son aufwand is mit den Umlauten...
Wer legt eigtl die Codierung fest? Der Editor


----------



## Loomis (7. Juli 2008)

Die Datenbank selber sollte auch noch in UTF-8 kodiert sein.
Jenachdem welchen Editor du benutzt, kannst du die Dokumente
selbst auch noch als UTF-8 speichern.


----------



## UncleB (7. Juli 2008)

Okay,
Dann änder ichs in der DB auf "UTF8_bin" oder?
Momentan ist "latin1_german1_ci" eingestellt..


----------



## Loomis (7. Juli 2008)

Welches genau das richtige ist kann ich nicht sagen, ich habe bei mir *utf8_unicode_ci* eingestellt und habe keine Probleme damit.


----------



## Grunge (7. Juli 2008)

also bei mir klappt es nicht zeigt trotzdem keine umlaue an


----------



## UncleB (7. Juli 2008)

hab jetzt mit
htmlspecialchars();
gemacht..


----------



## Grunge (7. Juli 2008)

datenbank t auch bei mir aber die umlaute als normaler text werden nicht angezeigt


----------



## nop0x90 (7. Juli 2008)

Grunge hat gesagt.:


> datenbank t auch bei mir aber die umlaute als normaler text werden nicht angezeigt


Ich würde vorschlagen, dass du uns mal deinen fehlerhaften Quelltext zeigst. Ansonsten musst du deinen "normalen Text" etwas anpassen:

&auml; = ä
&ouml; = ö
&uuml; = ü

&Auml; = Ä
&Ouml; = Ö
&Uuml; = Ü


----------



## Grunge (7. Juli 2008)

ich habe einfach nur charset auf utf-8 gesetzt und dann ganz normal mit umlauten text geschrieben


----------



## nop0x90 (7. Juli 2008)

Probier mal folgendes Minimalbeispiel auf deinem Webspace aus...
	
	
	



```
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  </head>
  <body>
    äöüÄÖÜ
  </body>
</html>
```


----------



## Grunge (7. Juli 2008)

das funktioniert


----------



## nop0x90 (7. Juli 2008)

Grunge hat gesagt.:


> das funktioniert


Dann benutz halt den ISO-8859-1 Standard


----------



## Grunge (7. Juli 2008)

und in der datenbank !?

EDIT:: Dein Standard t auch nicht


----------



## nop0x90 (7. Juli 2008)

Die Datenbanksätze lässt du halt, bevor du sie ausgibst, durch htmlspecialchars() laufen.


----------

