Webdesign in Siegen

umlautproblem

Fragen zum Thema HTML und CSS können hier gestellt werden

Moderatoren: Basti, Ingo

umlautproblem

Beitragvon Christian Trick am 24.09.2007, 14:21

Hallo!

Bei einer Webseite habe ich folgendes Problem:
Umalute wie äöüß sind direkt in den html-quelltext geschrieben (ich möchte ü etc. vermeiden) - auf manchen seiten werden diese Umlaute aber komsich angezeigt...
Auf anderen wird derselbe text korrekt angezeigt.

Korrekt:
http://glowing-eyes.de/KUNDEN/hasselhorst/_index.php?pid=1

Falsch:
http://glowing-eyes.de/KUNDEN/hasselhorst/_index.php?pid=4

Hat jemand von euch eine Idee wie man ohne alles durch ü etc. zu ersetzen das Problem beheben kann?

LG,
Christian

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon DrHonigtau am 24.09.2007, 14:22

einfach ue statt ü oder &uuml schreiben wär ne möglichkeit
Benutzeravatar
DrHonigtau
Mitglied
 
Beiträge: 1609
Registriert: 21.03.2005, 00:18

Beitragvon Christian Trick am 24.09.2007, 14:26

DrHonigtau hat geschrieben:einfach ue statt ü oder &uuml schreiben wär ne möglichkeit

ja, aber ist nicht wirklich wünschenswert, immerhin leben wir hier in Deutschland und haben Buchstaben wie äüöß etc.

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon Christopher am 24.09.2007, 14:31

Was spricht gegen &uuml? Weil es äufwendiger wäre, das zu schreiben? Vllt. hat dein Programm so eine Art "Autoersetzen", was dann immer, wenn du ü schreibst &uuml schreibt!?

Habe leider keine Ahnung, wieso er auf der einen alles richtig anzeigt und auf der anderen nicht...
MfG
Christopher
Bild
AMD K6 // 166MHZ // 16 MB-RAM // 2 MB On-Board Grafikchip // 1,6 GB-HDD // 4-Fach CD-Laufwerk :mrgreen:
Benutzeravatar
Christopher
Mitglied
 
Beiträge: 1796
Registriert: 18.09.2005, 10:08
Wohnort: Gütersloh(NRW)

Beitragvon Christian Trick am 24.09.2007, 14:33

Christopher hat geschrieben:Was spricht gegen &uuml? Weil es äufwendiger wäre, das zu schreiben? Vllt. hat dein Programm so eine Art "Autoersetzen", was dann immer, wenn du ü schreibst &uuml schreibt!?

Habe leider keine Ahnung, wieso er auf der einen alles richtig anzeigt und auf der anderen nicht...

viele der texte kommen aus einer mySQL datenbank, ich müsste jedes erdenklich Sonderzeichen mit einem PHP-Stringreplace durch die entsprechende Codierung ersetzen, das wäre ein gewlatiges script, wenn man bedenkt welche sonderzeichen es alle gibt

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon Ingo am 24.09.2007, 15:39

Hi.
Und PHP-Funktionen wie htmlentities(...) helfen auch nich weiter?
Der Befehl unterstützt u.a. den Zeichensatz ISO-8859-1
(de.php.net).
Benutzeravatar
Ingo
Moderator
 
Beiträge: 696
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Beitragvon Christian Trick am 24.09.2007, 15:42

macping hat geschrieben:Hi.
Und PHP-Funktionen wie htmlentities(...) helfen auch nich weiter?
Der Befehl unterstützt u.a. den Zeichensatz ISO-8859-1
(de.php.net).

wow, das sieht gut aus :-D
Ich glaube damit könntes klappen *freu*

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon Persisteus am 24.09.2007, 15:54

Man sollte lieber versuchen, das Problem zu lösen, anstatt es zu umschiffen.

Die Umlaute in der News & Termine-Seite scheinen jeweils durch zwei andere Zeichen ersetzt worden zu sein. Das ist typisch dafür, wenn eine Zeichenkette im UTF 8-Format auf einer normalen ISO-8859 dargestellt werden soll. UTF-8 braucht da pro Umlaut nämlich zwei Bytes.

Ich vermute mal, dass entweder die Daten in der Datenbank schon im UTF-8 vorliegen (was durch ein fehlerhaftes News-Eingabe-Formular hervorgerufen werden kann, welches die Tastatureingabe als UTF-8 sendet), oder dass irgendwo im PHP-Bereich fälschlicherweise die Zeichenketten nach UTF-8 konvertiert werden.

PS: Trotz allem müssen Sonderzeichen wie das "&" (z.B. in "News & Termine") durch & ersetzt werden.
Persisteus
Mitglied
 
Beiträge: 39
Registriert: 29.07.2007, 16:34

Beitragvon Ingo am 24.09.2007, 16:41

Die fehlerhafte Anzeige kommt in der Tat daher, dass einerseits der
angelieferte html-Text UTF-8-kodierte Zeichen enthält, andererseits
im html-head die Kodierung ISO-8859-1 angekündigt wird. Der Browser
weiß also gar nicht, dass UTF-8 auf ihn lauert.

Wenn die News schon UTF-8 encodiert in der DB vorliegen und sich
dies erstmal nicht ändern läßt, dann wäre eine erste (vllt. vorläufige)
Maßnahme die Funktion utf8_decode() vor der Auslieferung auf die
News loszulassen. Sie konvertiert ISO-8859-1 mit UTF-8-Zeichen nach
ISO-8859-1 (single byte, php.net).

Danach (und überhaupt) hilft htmlentities, die Umlaute etc. zu übersetzen.[/url]
Zuletzt geändert von Ingo am 24.09.2007, 16:50, insgesamt 1-mal geändert.
Benutzeravatar
Ingo
Moderator
 
Beiträge: 696
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Beitragvon Christian Trick am 24.09.2007, 16:49

Örm, kann man die codierung in der Datenbank umstellen?
Wie kann man einstellen was ein formular liefert?

formulare sehen derzeit etwa so aus:
Code: Alles auswählen
<form action="index.php?sid=3&amp;action=kat_insert" method="post"

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon Ingo am 24.09.2007, 17:15

Also was das Formular angeht, so gibt's das Attribut
accept-charset="ISO-8859-1" (auf Großschreibung
achten), das laut SelfHTML angibt, "mit welcher
Zeichenkodierung der Browser die eingegebenen
Formulardaten an den Web-Server senden soll"
.
Benutzeravatar
Ingo
Moderator
 
Beiträge: 696
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Beitragvon Dac-XP am 24.09.2007, 17:27

Hey cool! 8)
Das wusste ich auch noch nicht.
Benutzeravatar
Dac-XP
Mitglied
 
Beiträge: 1917
Registriert: 23.06.2005, 19:47
Wohnort: Mönchengladbach / NRW

Beitragvon Christian Trick am 24.09.2007, 19:04

macping hat geschrieben:Also was das Formular angeht, so gibt's das Attribut
accept-charset="ISO-8859-1" (auf Großschreibung
achten), das laut SelfHTML angibt, "mit welcher
Zeichenkodierung der Browser die eingegebenen
Formulardaten an den Web-Server senden soll"
.


okay, klingt brauchbar..
Muss ich an den SQL-datenbanken auch was ändern noch?
Die haben zur Zeit eine Kollation von latin1_general_ci

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt

Beitragvon Ingo am 24.09.2007, 20:14

Hm, die Grenzen meines Wissens / meiner Erfahrung sind nah ;o)
Auf dev.mysql.com... lese ich sinngemäß:
Die Kollation latin1_general_ci gehört zum Zeichensatz latin1,
der ist identisch mit dem Win-Satz cp1252 und gleicht ISO-8859-1
(bis auf die Zeichen 0x80 - 0x9F, trifft nicht die typisch deutschen).


Scheint also ok; du könntest allenfalls auf latin1_german1_ci
(oder german2) wechseln; das wirkt sich dann auf das Ergebnis
beim Vergleichen und Sortieren aus (dafür is die Kollation ja da).

Wie gesagt: Meine Erfahrungen beschränken sich auf Spielereien
mit ner lokalen XAMPP-Installation ... :? :P
Benutzeravatar
Ingo
Moderator
 
Beiträge: 696
Registriert: 01.04.2007, 23:21
Wohnort: Neuss/NRW

Beitragvon Christian Trick am 24.09.2007, 22:25

das mit dem
Code: Alles auswählen
accept-charset="ISO-8859-1"
hat geholfen, an der Datenbank musste ich so nichts mehr ändern, tausend dank!

Geht niemals mit ner schwarzen Hose und rotem Polo in den Media Markt!
Benutzeravatar
Christian Trick
Mitglied
 
Beiträge: 573
Registriert: 02.08.2006, 02:14
Wohnort: Lippstadt


Zurück zu HTML/CSS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast