UTF-8 Umlautproblem!

Sanymedia

New Member
Hallo,

Hab ein Prägnantes Problem und zwar, ich erstelle nun eine HTML Datei, setzte das Charset auf UTF-8 und gebe über die Linux Konsole mehrere Umlaute wie ä,ö ein.

Wenn ich nun meine Seite betrachte, sind alle Umlaute durch Vierecke Kästen mit einem Fragezeichen ersetzt, aber im Quelltext als Ä und Ö erkennbar.

Setzte ich das Charset auf ISO-8859-1 so werden Sie korrekt dargestellt.

Das gleiche ebenfalls mit Dreamweaver CS erstellte Seiten, kann mir jemand helfen??
 
Du musst beim Abspeichern der Datei immer die Kodierung wählen, welche dem gesetzten Charset entspricht. Das kann eigentlicht jeder gute Editor, aber oftmals ist die Option versteckt.
Welchen Editor verwendest du auf der Linux Console? Nano und vim jedenfalls bieten vollen Unicode bzw ISO8859-* Suppport.
 
Hi.
Das kann viele Ursachen haben.
Neben dem, was Spin-Doc schon angedacht hat, sehe ich da noch folgendes:
Hast Du es mal mit anderen Browsern angesehen, bzw. die Schriftsatzeinstellung im Browser kontrolliert?
Hast Du im einen korrekten Header in der HTML-Datei?
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhmtl1-transitional.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...
Und schließlich könnte es auch noch eine Fehlkonfiguration des Webservers sein (was ich aber eher für unwahrscheinlich halte).

greets
Smile
 
Hallo,

Also ich geh aktuell so vor:

Zend Studio starten, HTML Datei anlegen, paar Umlaute rein knallen und per FTP mittels Zend Studio speichern und anschließend dann anschauen.

Wenn ich nun im Browser (bsp. Firefox die Codierung auf ISO-8859-*) setzte dann sind die Umlaute korrekt dargestellt, switch ich nun wieder auf UTF-8 seh ich wieder nur ein Zeichen wirr warr..

Hab auch schon den Charset direkt im Header meiner PHP Datei gesetzt, erfolglos...
 
Es reicht nicht, in den Headern oder im Doctype oder sonstwo das Encoiding zu setzen.
Es kommt vorallem darauf an, dass die tatsächlich im Dokument enthaltenen Zeichen auch diesem Encoding entsprechen.
Wenn das Zend-Studio ISO-Umlaute speichert, kannst du 1000 mal irgendwo behaupten, sie seien UTF-8 - sie werden aber noch lange nicht auf magische Weise zu UTF-8 Umlauten dadurch.

ISO-Umlaute sind (wie jedes Zeichen in ISO durch 8 Bit repräsentiert) in UTF-8 können Zeichen mehr als 8 Bit lang sein. Genau gesagt vielfache von 8 - deshalb auch UTF-8. Unsere deutschen Umlaute sind 16 Bit lang.

Das Programm, das die Zeichen darstellen soll, muss wissen, wie sie zu interpretieren sind, weil das eine Information _über_ die Zeichen ist. Sie ist in den Zeichen selbst nicht enthalten.
Wenn du also nun als Charset UTF-8 angibst und das Programm kommt zu einem ISO-Umlaut, dann ist der nicht darstellbar oder wird falsch dargestellt.
 
Hallöchen,

Danke für dein Beitrag, aber ich muss mich gerade persönlich Fragen, ob dein Beitrag mich nun als "Dumm" darstellen soll oder nicht.

Deine Theorie das dass Encoding im Zend Studio nicht stimmt, diese Theorie ist korrekt. Jedoch trifft Sie bei mir jedoch nicht ein da das File Encoding im Zend Studio auf UTF-8 eingestellt, sowie auch im Macromedia Dreamweaver CS3.

Nun wenn ich ein Dokument mit ISO-* erstelle, aber in der HTML UTF-8 angebe, werden im übrigen auch wirre Zeichen dargestellt, also deine Aussage ist somit nicht ganz korrekt.

Ich bin absolut Ratlos in dieser Hinsicht.
 
Nun wenn ich ein Dokument mit ISO-* erstelle, aber in der HTML UTF-8 angebe, werden im übrigen auch wirre Zeichen dargestellt, also deine Aussage ist somit nicht ganz korrekt.

Wieso, er hat da schon recht. Wenn du ein ISO Dokument erstellst, als Chatset im Header aber UTF angibst, dann kommt Zeichensalat raus. Deshalb muss das Dokumentformat immer mit dem Charset im Header übereinstimmen.
 
Fragezeichen ist öfters Anzeichen dafür, dass die Quelldatei nicht richtig codiert wurde.
Überprüfe nochmal richtig, ob im Editor wirklich UTF-8 eingestellt ist. Außerdem im Browser schauen, ob die Seite auch UTF-8 Darstellung anfordert.
Ansonsten poste noch das Grundgerüst der HTML-Datei...
 
ob dein Beitrag mich nun als "Dumm" darstellen soll oder nicht.
Sollte er nicht. Ich wollte nur etwas intensiver herausheben, dass es einen wesentlichen Unterschied gibt zwischen dem Encoding, dass man an diversen Stellen angibt (HTTP-Header, DocType-Declaration, (X)HTML-Tags u.s.w.) und dem Encoding der tatsächlich im Dokument enthaltenen Zeichen.
Da das Encoding eine Aussage über das Dokument ist, die nicht als Eingenschaft im Dokument selbst enthalten (das Dokument ist lediglich ein Bytestream), müssen Inhalt und Beschreibung zusammenpassen.

Fragezeichen sieht man üblicherweise dann, wenn ISO-Umlaute mit einem Multibyte-Encoding dargestellt werden sollen. Das spricht dafür, dass du zwar an allen möglichen Stellen dem Browser UTF-8 ankündigst, die Zeichen im Dokument dann aber tatsächlich in ISO kodiert sind.

Ansonsten poste noch das Grundgerüst der HTML-Datei...
Lieber eins der Files als Attachment anhängen, damit das Encoding erhalten bleibt.
 
Sollte er nicht. Ich wollte nur etwas intensiver herausheben, dass es einen wesentlichen Unterschied gibt zwischen dem Encoding, dass man an diversen Stellen angibt (HTTP-Header, DocType-Declaration, (X)HTML-Tags u.s.w.) und dem Encoding der tatsächlich im Dokument enthaltenen Zeichen.

Jupp das hab ich schon richtig verstanden und auch dementsprechend umgesetzt :)

Fragezeichen sieht man üblicherweise dann, wenn ISO-Umlaute mit einem Multibyte-Encoding dargestellt werden sollen. Das spricht dafür, dass du zwar an allen möglichen Stellen dem Browser UTF-8 ankündigst, die Zeichen im Dokument dann aber tatsächlich in ISO kodiert sind.
Korrekt! Das würde erklären, warum ich die Umlaute sehe wenn ich im Browser von UTF-8 auf ISO umstelle...

Nun hab ich euch mal ein Screenshot mit meinen Einstellungen für das File Encoding im Zend Studio dazu gepackt, sowie auch die Original login.html

Sobald ich die login.html auf meinen Server übertrage, hauts mir wieder alles raus, was es mir aber lokal im Browser einwandfrei mit dem (C) Zeichen anzeigt.

Begutachten könnt Ihr euch das unter https://stage.sany-media.de/index
 

Attachments

  • zend_properties.jpg
    zend_properties.jpg
    33.9 KB · Views: 94
  • login.zip
    login.zip
    1.1 KB · Views: 54
Ich würde mal behaupten, Zend-Studio tut nicht das, was es vorgibt. Könnte ein Bug sein.
Hast du schon ausgeschlossen, dass es sich um einen Fehler der Übertragung handelt? Upload im Binary-Mode, Vergleichen von Prüfsummen u.s.w.?
Wenn ja, würde ich eine Support-Anfrage beim Hersteller empfehlen. Schließlich hat die IDE ja Geld gekostet.
 
Hallo,

Hab bereits ein Supportticket an Zend gestellt, aber die ist schon seit ner Woche unbeantwortet.

Nun ist halt die Frage an welchen Punkte ich ansetzen soll, die HTML Files erstelle ich alle mit Dreamweaver CS 3 wo ebenfalls das File Encoding auf UTF-8 gestellt ist.

Was mich jedoch wundert, wenn ich im Entwurfsmodus ein Ä tippe, steht es im Sourcecode auch ebenfalls als Ä drin und nicht als &auml;

Das mit dem FTP muss ich noch testen, dann kann ich mehr darüber sagen, weil ich kopier mir meinen Sourcecode wenn nötig aus dem Dreamweaver füge diesen in mein Zend und speicher es letzendlich...

Was natürlich noch Interessant wäre, was ist wenn ich diese File auf einen anderen Server Uploade, ob dann dieser Fehler ebenfalls noch existiert.. *grübel*
 
Okay, nun hab ich folgendes gefunden:

Wenn ich die Datei Original auf einen anderen Webserver verlege hab ich absolut keine Probleme.

Nun, hab ich mal die Datei manuell auf meinen Server wieder im ASCII Modus geuploadet, alles wunderbar...

Nur hab ich das Problem, das ich weder im Dreamweaver noch im Zend Studio den FTP Übertragungsmodus einstellen kann...

Kann ich irgendwie im Proftpd ein Übertragungsmodus erzwingen?

Hab in der proftpd.conf nun folgendes geändert:
DefaultTransferType (von binary) auf ascii umgestellt.

Jedoch kommt bei Zend & Dreamweaver der selbe müll raus, selbst wenn ich im Filezille die Datenübertragung auf "automatisch" stelle, hab ich selbiges Problem wie bei Zend & Co...
 
Back
Top