Umlaute darstellen

I

iphonenewbie

Mitglied
Thread Starter
Dabei seit
28.11.2008
Beiträge
96
Reaktionspunkte
0
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 :)
 
Muss ich die Formatierung in der Datenbank (sprich in phpMyAdmin) ändern? :confused:

Ja, oder Du konvertierst die Ergebnisse. Offensichtlich liegen die Daten in ISO-8859-1 (aka "WinLatin") vor, nicht in UTF-8

Alex
 
Ja, oder Du konvertierst die Ergebnisse. Offensichtlich liegen die Daten in ISO-8859-1 (aka "WinLatin") vor, nicht in UTF-8

Alex

..meinst du die Einträge mit PHP konvertieren - oder sollte ich die Datenbank ändern?
 
Naja, was Dir besser passt.

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

Gruss

Alex
 
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.
 
Oh, das tut mir leid, mit dem Teil von Datenbanken kenne ich mich nicht aus :(

Alex
 
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!
 
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! :)
 
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.
 
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
 
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.
 
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?
 
Supi, das klappt! Danke!

Wobei, so ganz leuchtet es mir ja nicht ein, wieso es nicht reicht in phpMyAdmin UTF-8 als Kollation einzustellen..
 
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.
 
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.
 
Zurück
Oben Unten