Zeichensatz Problem oder sowas in der Art (?)
-
Hi Folks!
Es geht um mein Übungsprojekt was ich schon hier http://www.c-plusplus.net/forum/viewtopic.php?t=43585 erwahnt hatte.
Das Ding liegt nun auf nem Server drauf und es läuft sogar einwandfrei bis auf den Fehler dass umlaute falsch dargestellt werden.Ich habe mal einen screenshot gemacht von dem fehler.
http://mitglied.lycos.de/oxse/zeichen.jpg
woran liegt das? wie kann ich das beheben?
wenn ich mit phpmyadmin mich auf dem server einlogge, und mir die betreffende tabelle anschaue, stelle ich fest dass die umlaute korrekt eingespeichert wurden. sie werden halt nur falsch auf den IE gebracht.
-
Sonderzeichen (dazu gehören leider auch ü, ä und ö) sind in (X)HTML zu maskieren. Aus ä wird ä aus ü ü aus ö wird ö (bei Großbuchstaben z.B. Ä).
Zusätzlich muss man noch einen Zeichensatz angeben (entweder über META oder HTTP Header).
-
Ich dachte wenn ich den Zeichensatz angebe brauch ich das nicht mehr zu tun? Gleich mal Dateien ändern werd...
MfG SideWinder
-
Nein, normalerweise sollte es auch dann funktionieren. Aber mit dem Zeichensatz kann es auch Probleme geben, wenn z.B. der andere Computer den Zeichensatz nicht kennt oder die Zeichensatz Information verloren geht (die Zeichensatz Angabe im HTTP Header geht beim Download verloren. Ebenso können die META Angaben beim Downloaden durch den Browser verändert werden).
-
Loggy schrieb:
Nein, normalerweise sollte es auch dann funktionieren. Aber mit dem Zeichensatz kann es auch Probleme geben, wenn z.B. der andere Computer den Zeichensatz nicht kennt oder die Zeichensatz Information verloren geht (die Zeichensatz Angabe im HTTP Header geht beim Download verloren. Ebenso können die META Angaben beim Downloaden durch den Browser verändert werden).
Aha also doch maskieren :).
MfG SideWinder
-
Ja wie soll ich das denn nun bewärkstelligen??
Ich mein in meiner DB stehen die daten mit umlauten drin...
-
wie?
na umwandeln...
entweder du lässt n schönes string replace über die datenbank laufen oder du machst das string replace jedesmal wenn du die daten aus der datenbank liest...ich verstehe das problem nicht...
-
-
Hi nochmals!
Also ich habe es nun mit dem hier probiert:
$selectcode = htmlentities($selectcode);
als ich das auf den server gelegt habe, kam als ausgabe nicht die combobox sondern der quelltext der combobox. anscheinend ist eine ältere version von php auf dem server oder so. keine ahnung.
dann habe ich das ganze mal so probiert:
$selectcode = str_replace("Ä","Ä",$selectcode); $selectcode = str_replace("Ö","Ö",$selectcode); $selectcode = str_replace("Ü","Ü",$selectcode); $selectcode = str_replace("ä","ä",$selectcode); $selectcode = str_replace("ö","ö",$selectcode); $selectcode = str_replace("ü","ü",$selectcode);
da kam das selbe ergebnis bei raus wie ganz am anfang ohne htmlentities.
selbst nachdem ich in den hier eingefügt habe, lief es nicht?
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
Tja was soll ich denn jetzt noch tun?
-
Wie sieht denn der ausgegebene HTML-Quellcode mit htmlentities aus? In PHPMyAdmin sieht ja noch alles richtig aus, schau dir da mal des ausgegebenen Code an Ansonsten bin ich ratlos