Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

1 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 10:54

UTF-8 Problem (MySQL + XHTML 1.0)

Hallo zusammen

Ich stehe kurz vor der Verzweiflung wegen eines Problems mit UTF-8 in Kombination mit MySQL und XHTML.

Man sehe sich meine Seite an: deleted (auf deutsch)

Alle Umlaute, welche aus der Datenbank kommen (die News-Einträge kommen aus der DB) werden falsch dargestellt. Oberhalb der Einträge steht derzeit "Test: ä ö ü" - diese Umlaute stehen genau so im Code der Webseite und werden trotzdem richtig dargestellt. Schaut man sich denn Quelltext der Seite im Browser an stellt man auch dort fest, dass die Umlaute aus der DB nicht richtig angezeigt werden - ich nehme daher an, dass Problem ist in der DB zu suchen.
In der DB ist die Collation aber überall auf "utf8_general_ci" gesetzt und auch phpMyAdmin zeigt alles korrekt an.

Ich weiss langsam nicht mehr wo ich noch suchen muss und wäre daher unendlich dankbar für einen kleinen denkanstoss. Vermutlich habe ich sowieso nur irgend etwas kleines übersehen...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »seventhson« (2. Januar 2007, 14:37)

 

Skittles

Moderator

Dabei seit: 14.02.2004

Beiträge: 3 014

 

2 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 11:01

hast du die daten auch als unicode in die db geschrieben, oder wurden die vielleicht als iso sonstwas reingeschickt?

~!__/
..o.o

This is Einkaufswagen.
Copy Einkaufswagen into your signature to help him on his way to world domination.
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

3 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 11:06

Zitat

Original von Skittles
hast du die daten auch als unicode in die db geschrieben, oder wurden die vielleicht als iso sonstwas reingeschickt?

Müsste schon unicode sein. Ich habe gestern die DB als Dump exportiert, komplett gelöscht und neu via phpMyAdmin importiert. Beim importieren in phpMyAdmin habe ich ebenfalls utf-8 angegeben - das müsste doch eigentlich reichen oder nicht?

Nachtrag:

Gerade fällt mir auf... unter "Concerts" kommen die Daten ebenfalls aus der selben MySQL-DB aber da existiert das Problem seit dem neuen Import der Daten nicht mehr. Sehr eigenartig...


Bitte keine Doppel / Mehrfachpostings!
siehe auch FAQ
Bitte benutze die Editierfunktion! mfg Lucius!
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

4 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 13:57

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
function umlaute_ersetzen($text)
    {
        $text ereg_replace("ä","ä",$text);
           $text ereg_replace("Ä","Ä",$text);
           $text ereg_replace("ü","ü",$text);
           $text ereg_replace("Ü","Ü",$text);
           $text ereg_replace("ö","ö",$text);
           $text ereg_replace("Ö","Ö",$text);
           $text ereg_replace("ß","ß",$text);
           return $text;
    }


Nutze diese Funktion mal dann sollte das funktionieren bei dir!

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

5 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:05

Mein Problem hat aber nichts mit der Schreibweise von Umlauten in HTML zu tun, daher hilft mir diese Funktion nicht. Ausserdem werden die Umlaute anscheinend ja falsch aus der DB gelesen, daher kann die Funktion sowieso keine Umlaute finden.

Für die Website werde ich schlussendlich natürlich auch auf eine solche Funktion zurückgreiffen, damit ich valides XHTML ohne Umlaute erhalte. Im RSS-Feed funktioniert dies jedoch nicht - da müssen die Umlaute im Klartext und nicht HTML-Kodiert erscheinen.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

6 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:12

Zitat

Original von seventhson
Mein Problem hat aber nichts mit der Schreibweise von Umlauten in HTML zu tun, daher hilft mir diese Funktion nicht. Ausserdem werden die Umlaute anscheinend ja falsch aus der DB gelesen, daher kann die Funktion sowieso keine Umlaute finden.


Türlich hat die etwas damit zu tun... Mach das einfach mal denn ich habe genau das gleiche "Problem" gehabt und deshalb hab ich mir diese kleine Funktion geschrieben. Ich habe die Umlaute auch nicht verändert gespeichert und trotzdem hat es mit dieser Funktion geklappt!

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

7 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:19

Nein hat es nicht. Schau dir doch mal den RSS-Feed an: deleted
und am besten auch dessen Quelltext. Sogar im Quelltext werden die Umlaute nicht richtig dargestellt.

Und hier mal ein Ausschnitt aus dem Quelltext der Seite selbst:

Quellcode

1
2
3
<p>Test: ä ö ü</p>
<h1>Neue Website</h1>
<p>Ab sofort pr&#65533;sentiert sich euch disillusionroad.ch in einem komplett neuen Design. Auch am Seitenaufbau wurde einiges ge&#65533;ndert.


Die erste Zeile ist Hardcoded. Der Paragraph kommt aus der DB.

Auf der Seite Concerts hole ich ebenfalls Daten mit Umlauten aus der DB. Da funktionierts problemlos.

Ausserdem verwende ich derzeit bereits eine solche funktion - nützt aber auch nix ;)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »seventhson« (2. Januar 2007, 14:38)

 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

8 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:27

Wenn das keine Lösung ist dann speicher die Umlaute direkt "umgewandelt" in der DB dann hast Du damit auch keine Probleme ...

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

9 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:44

Zitat

Original von maxtpayne
Wenn das keine Lösung ist dann speicher die Umlaute direkt "umgewandelt" in der DB dann hast Du damit auch keine Probleme ...

Daran habe ich auch schon gedacht, doch diese Lösung ist mir irgendwie zu hässlich.
Ausserdem müsste ich die umgewandelten Umlaute dann für den RSS-Feed wieder in "normale" Umlaute umwandeln.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

10 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 14:59

Zitat

Original von seventhson

Zitat

Original von maxtpayne
Wenn das keine Lösung ist dann speicher die Umlaute direkt "umgewandelt" in der DB dann hast Du damit auch keine Probleme ...

Daran habe ich auch schon gedacht, doch diese Lösung ist mir irgendwie zu hässlich.
Ausserdem müsste ich die umgewandelten Umlaute dann für den RSS-Feed wieder in "normale" Umlaute umwandeln.


"hässlich" naja Ansichtsache aber das mit dem RSS ist doch nur ne Programmier sache. Ich denke mal das dein RSS-Feed automatisch generiert wird dann lass doch bei diesem generieren das "umwandeln" einfach weg!

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

11 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 16:04

Naja, ich fänd das jedenfalls mehr als hässlich.
Vor allem verwundert mich, dass es in der eine MySQL-Tabelle klappt und in der anderen nicht.


Nachtrag:

Hmmmm jetzt bin ich aber wirklich verwirrt - mit htmlentities funktionierts aber mit einem Umlaute-Replace-Script wie das von oben nicht. htmlentities ist aber auch keine Lösung, weil ich zum teil HTML in die Tabelle schreiben muss (Links etc.)


Bitte keine Doppel / Mehrfachpostings!
siehe auch FAQ
Bitte benutze die Editierfunktion!


Beim nächsten Mal wird kommentarlos gelöscht! mfg Lucius!
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

12 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 16:40

Bitte keine Doppelposts!

Was meinst du mit HTMLEntities?

Und was für ein Umlaut-Replace Script?!? Wie wendest Du das?

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

13 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 16:56

Zitat

Original von maxtpayne
Was meinst du mit HTMLEntities?


http://www.php.net/htmlentities

Zitat

Und was für ein Umlaut-Replace Script?!? Wie wendest Du das?


Zitat

Original von seventhson
einem Umlaute-Replace-Script wie das von oben


Also genau dem selben wie du oben gepostest hast, ausser dass die Funktion anders heisst.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

14 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 17:05

ok und wie rufst Du die funktion im Quelltext auf?

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

15 Zum Seitenanfang

Donnerstag, 28. Dezember 2006, 22:44

Na mit

PHP-Quelltext

1
$text umlaute_ersetzen($wert_aus_db);
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

16 Zum Seitenanfang

Freitag, 29. Dezember 2006, 07:11

so rufst Du die bestimmt nicht auf ich will den Quelltext sehen mein Gott....

Nicht irgendwelcehn PseudoCode...

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

17 Zum Seitenanfang

Freitag, 29. Dezember 2006, 08:57

Meine Güte reg dich ab.
Ich rufe die Funktion richtig auf. Wenn ich die Funktion z.B. so modifiziere, dass sie mir alla "a"'s durch "b"'s ersetzt klappt das wunderbar, wenn ich aber Umlaute ersetzen will macht sie anscheinend gar nichts.

Ich hab nicht erst gestern angefangen, mich mit PHP zu beschäftigen und weiss daher, wie man in PHP Funktionen aufruft - daher liegts also bestimmt nicht.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

18 Zum Seitenanfang

Freitag, 29. Dezember 2006, 09:08

Zitat

Original von seventhson
Meine Güte reg dich ab.
Ich rufe die Funktion richtig auf. Wenn ich die Funktion z.B. so modifiziere, dass sie mir alla "a"'s durch "b"'s ersetzt klappt das wunderbar, wenn ich aber Umlaute ersetzen will macht sie anscheinend gar nichts.

Ich hab nicht erst gestern angefangen, mich mit PHP zu beschäftigen und weiss daher, wie man in PHP Funktionen aufruft - daher liegts also bestimmt nicht.


Dann Speicher die halt vorher "umgewandelt" ab dann funktionierts auch...

Greetz

MaxTPayne
 

seventhson

Jungspund

Dabei seit: 28.12.2006

Beiträge: 11

 

19 Zum Seitenanfang

Freitag, 29. Dezember 2006, 12:03

Um danach für den RSS-Feed alle &auml;'s wieder in ä's zurückzuwandeln etc? Nein danke...
 

heinervdm

Technik-Admin

Dabei seit: 02.10.2002

Beiträge: 3 772

 

20 Zum Seitenanfang

Freitag, 29. Dezember 2006, 15:38

hast du schon mal die funktionen utf8-decode und utf8-encode() ausprobiert?

PS: verschoben nach PHP.
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.