Umlaute darstellen

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Hallo,

ich habe ein HTML Dokument, das Umlaute komisch darstellt (die alte Leier.. :)).

Code:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
..stellt sie genauso dar, nur

Code:
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
..macht es "richtig".

Nun möchte ich Text aus einer mit phpMyAdmin (an den Formatierungseinstellungen hab ich nix gedreht) erstellten Datenbank auslesen. Dabei habe ich das gleiche Problem nur umgedreht, sprich, es geht nur mit..

Code:
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Wie krieg ich es hin, dass beides vernünftig dargestellt wird?
Muss ich die Formatierung in der Datenbank (sprich in phpMyAdmin) ändern? :confused:

Vielen Dank :)
 

below

Aktives Mitglied
Mitglied seit
15.03.2004
Beiträge
13.564
Naja, was Dir besser passt.

Darf ich so frech sein und Fragen ob Du weisst, was ein Character Encoding ist?

Gruss

Alex
 

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Naja, was Dir besser passt.

Darf ich so frech sein und Fragen ob Du weisst, was ein Character Encoding ist?

Gruss

Alex
Simpler kommt's mir ja vor die Datenbank zu ändern - spart mir PHP-Code.. Solang nix dagegen spricht.
Kannst du mir vlt noch sagen, wie ich das mache? Ich hab da jetzt bei "Kollation" mal "utf8_general_ci" eingegeben und das hat nix gebracht - außerdem scheint man das für jeder Tabelle und Spalte einzeln machen zu müssen (hab schon 18 Tabellen in der DB - das macht ja keinen Spaß).

Zu deiner Frage: prinzipell weiß ich das schon - ich benutze es ja - ich bin nur grad etwas überrascht, dass <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> nicht funktioniert, sondern ich UTF-8 nehmen muss, damit er die Umlaute darstellt - sonst ging's immer mit ISO-8859-1.
 

below

Aktives Mitglied
Mitglied seit
15.03.2004
Beiträge
13.564
Oh, das tut mir leid, mit dem Teil von Datenbanken kenne ich mich nicht aus :(

Alex
 

wegus

Moderator
Mitglied seit
13.09.2004
Beiträge
17.302
Es ist wichtig, das die DB und die PHP-Skripte möglichst das gleiche Encoding verwenden. Es geht auch mit manueller Konvertierung, wie Du merkst kommt man dabei aber schnell in Probleme! Der optimale Fall ist das DB, PHP-Skripte ( also deren SourceCode) und das Encoding in dem der Webserver ausliefert alles drei identisch ist!

Ich verlinke da immer diesen Artikel von Gerd Riesselmann der das mal sehr gut in den richtigen Kontext gestellt hat. Wer das so befolgt wie es da steht hat die wenigsten Probleme!
 

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Soo, ich hab des Rätsels Lösung jetzt gefunden:

in den Einstellungen meines Editors (Smultron) habe ich jetzt Latin1 als Standard eingestellt - das löst das Problem ohne, dass ich die Datenbank ändern muss oder Text extra noch mit einer Formel umwandeln muss.
Smultron scheint der Datei "unsichtbar" irgendwas anzuhängen, das die Formatierung beeinflusst - wieder was gelernt.

Danke auf jeden Fall für die Tips! :)
 

vib

Mitglied
Mitglied seit
15.02.2011
Beiträge
236
Um das Problem zu umgehen ist UTF-8 als Standard-Format zu empfehlen. Damit sollten betriebssystemuebergreifend die wenigsten Probeme auftreten. Bei der Erdbeere(Smultron) kann man das glaube unter "Einstellungen" > "Erweitert" auf "Benutze immer UTF-8" setzen.
 

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Wie gesagt, ich hatte jetzt das Smultron auf Latin1 umgestellt.

Wennnn ich das auf UTF-8 umstelle, muss ich
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
benutzen, um Umlaute darzustellen. Was dann leider dazu führt, dass meine Datenbankumlaute nicht mehr richtig dargestellt werden (nur mit utf8_encode()).
..und das obwohl ich jetzt zum testen extra eine db mit utf8_general_ci Kollation angelegt habe :S
 

falkgottschalk

Aktives Mitglied
Mitglied seit
22.08.2005
Beiträge
24.083
Da ist dann aber immer noch etwas faul.
Ich hatte da auch mal Probleme, das Zauberwort " mysql_query("SET NAMES 'utf8'");" hat dann das Problem der UTF8 in der Datenbank gelöst.
 

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Da ist dann aber immer noch etwas faul.
Ich hatte da auch mal Probleme, das Zauberwort " mysql_query("SET NAMES 'utf8'");" hat dann das Problem der UTF8 in der Datenbank gelöst.
Ist das was, was ich einmal in phpMyAdmin einsetze oder muss das in der PHP Datei drinstehen? Ist der Code so komplett oder muss ich Datenbankname o.ä. einsetzen?
 

iphonenewbie

Mitglied
Thread Starter
Mitglied seit
28.11.2008
Beiträge
96
Supi, das klappt! Danke!

Wobei, so ganz leuchtet es mir ja nicht ein, wieso es nicht reicht in phpMyAdmin UTF-8 als Kollation einzustellen..
 

falkgottschalk

Aktives Mitglied
Mitglied seit
22.08.2005
Beiträge
24.083
An dem Punkt des Unverständnisses war ich auch und habe mich dann damit abgefunden, das es klappt. Auch ich bin der Meinung, dass es _eigentlich_ mit dem Charset und der Kollation reichen sollte- was es aber nicht tut. Diesen Einzeiler noch dazu und alles ist gut.
 

wegus

Moderator
Mitglied seit
13.09.2004
Beiträge
17.302
Auch ich bin der Meinung, dass es _eigentlich_ mit dem Charset und der Kollation reichen sollte- was es aber nicht tut.
ich habe mal gelesen das der Grund dafür der Treiber sein soll mit dem PHP mit der DB redet. Das DB und PHP das selbe Encoding verwenden ist ja schön, wenn aber der Treiber dazwischenfunkt dann nutzt eben auch das nichts. Um dem klarzumachen was da rein und rausgehe soll hilft die von Dir zitierte Zeile.
 
Oben