mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 26.04.2024 15:44 Benutzername: Passwort: Auto-Login

Thema: UTF-8-Codierung eines Zeichens auf einer Webseite ermitteln vom 23.10.2013


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Allgemeines - Nonprint -> UTF-8-Codierung eines Zeichens auf einer Webseite ermitteln
Seite: Zurück  1, 2, 3, 4
Autor Nachricht
ChrisKam

Dabei seit: 01.07.2009
Ort: Hattingen
Alter: 38
Geschlecht: Männlich
Verfasst Do 24.10.2013 11:58
Titel

Antworten mit Zitat Zum Seitenanfang

Karlarsch hat geschrieben:
Moderne Browser geben einem die Möglichkeit

1. Den Quellcode der Seite anzusehen (View Source), dass ist der Code der direkt vom Server kommt, aber auch
2. Den interpretierten Code anzusehen (Dev Tools), das ist das was im Endeffekt angezeigt wird.

Am eigentlich Quellcode ändert der Browser nichts, er interpretiert nur diesen im Zusammenspiel mit allen anderen Ressourcen. Im Prinzip sind also beide Aussagen richtig.

Diese beiden können identisch sein, sind es aber meist nicht.

Beim interpretierten Code spielen z.B. Änderungen durch JS, CSS (z.B. content) und Shadow Dom mit rein.

Das geschilderte Problem ist vermutlich auf eine Encoding Mismatch zwischen 2 oder mehr Systeme verursacht.
Das kann u.U. auch schon bei der Speicherung in der Datenbank beginnen.

Gruß
Karl


Danke für die Klarstellung Karl, daran hatte ich aber auch schon gedacht.

Das Zusammenbauen in Chrome tritt bereits im uninterpretierten QC auf (Strg+U) und nicht erst im Live-Dom der Entwicklerkonsole (F12). Ich konnte Chrome nur über Network > Response zur Darstellung dieser Sonderzeichen bewegen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
JohnnyCage
Gesperrt

Dabei seit: 11.12.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 24.10.2013 12:43
Titel

Antworten mit Zitat Zum Seitenanfang

Ich versteh das Problem nicht. Ich kenne kaum einen einfacheren Zusammenhang.
Code->Zeichenkodierungsspezifikation->Zeichen.

Wenn euch irgendwas daran stört oder Probleme bereitet sind die Anlaufstellen die Zeichen und die Zeichenkodierungsspezifikation und nicht die schicken Knöpfchen in euren Browsern.

Es wurde eigentlich alles auf den ersten beiden Seiten gesagt. Über eure Browser-UIs philosophieren könnt ihr doch auch woanders.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
JohnnyCage
Gesperrt

Dabei seit: 11.12.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst So 27.10.2013 14:54
Titel

Antworten mit Zitat Zum Seitenanfang

ChrisKam hat geschrieben:
Steht doch da:

Zitat:
[...] Aber warum solltest Du über die QC Anzeige Chromes auf diese Idee kommen? De-facto baut Chrome diese zwei Zeichen zusammen in der Quellcode-Anzeige, ändert also etwas am Quellcode. Dies ist m.E. nicht korrekt, da es halt nicht mehr der tatsächliche Quellcode ist, so wie er auf dem Server liegt und so wie ich ihn mittels anderer Chrome-Werkzeuge auch zu Gesicht bekomme.


Deine Aussage "der Browser ändert nichts am Quellcode" ist sinngemäß einfach falsch und das kannst Du einfach mal akzeptieren, statt hier den Dicken zu machen.


Da ist überhaupt nichts falsch, du kapierst einfach nicht, dass der Code den Spezifikationen entsprechend dargestellt wird. Am zugrunde liegenden Code ändert sich überhaupt nichts wie top dir, eigentlich einleuchtend, demonstriert hat.

Kann man (du) den thread bitte von diesem quellcodeändernden Browsern quatsch säubern, Grafiker-Mythen sind so schwer weg zu bekommen wenn sie erstmal entstanden sind.
  View user's profile Private Nachricht senden
JohnnyCage
Gesperrt

Dabei seit: 11.12.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst So 27.10.2013 14:55
Titel

Antworten mit Zitat Zum Seitenanfang

ChrisKam hat geschrieben:
Steht doch da:

Zitat:
[...] Aber warum solltest Du über die QC Anzeige Chromes auf diese Idee kommen? De-facto baut Chrome diese zwei Zeichen zusammen in der Quellcode-Anzeige, ändert also etwas am Quellcode. Dies ist m.E. nicht korrekt, da es halt nicht mehr der tatsächliche Quellcode ist, so wie er auf dem Server liegt und so wie ich ihn mittels anderer Chrome-Werkzeuge auch zu Gesicht bekomme.


Deine Aussage "der Browser ändert nichts am Quellcode" ist sinngemäß einfach falsch und das kannst Du einfach mal akzeptieren, statt hier den Dicken zu machen.


Da ist überhaupt nichts falsch, du kapierst einfach nicht, dass der Code den Spezifikationen entsprechend dargestellt wird. Am zugrunde liegenden Code ändert sich überhaupt nichts wie top dir, eigentlich einleuchtend, demonstriert hat.

Kann man (du) den thread bitte von diesem quellcodeändernden Browsern quatsch säubern, Grafiker-Mythen sind so schwer weg zu bekommen wenn sie erstmal entstanden sind.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 28.10.2013 10:46
Titel

Antworten mit Zitat Zum Seitenanfang

Hier werden zwei Dinge durcheinandergeworfen. Die Renderengine des Browsers "ändert" respektive bereinigt natürlich den gelieferten HTML-Quellcode, heraus kommt der DOM-Tree, die interne Repräsentation des gelieferten Codes. Der DOM-Tree ist aber wiederum kein "HTML", sondern ein sogenannter "Abstract Syntax Tree" (AST), eine abstrakte Repräsentation der HTML-(oder XML-)Quelle. Das betrifft meines Wissens nach aber "nur" den Code, also das HTML, ausgenommen der mitgelieferten Inhalte (Text).

Laienhaft erklärt:
Zur Darstellung zweier Zeichen anstatt einer. Ein Zeichen (ein "a" oder auch eine Ziffer, "1"), wird in einem Byte codiert, das sind 8 bit (00000000 - 11111111). Das ermöglicht prinzipiell die Darstellung von 256 unterschiedlichen Zeichen, Ziffern und Steuersymbolen (Tab, Enter): 0000 = 0, 1111 = 1+2+4+8+16+32+64+128 = 255; 0..255 <=> 256 Möglichkeiten.

(fast) jeder Nummer zwischen 0 und 255 wird nun ein Zeichen zugeordnet.

Das ist nur eine Konvention (nennt man dann "Kodierung"), einfache 1-Byte-Kodierungen ist bspw. ASCII.

Da das aber nicht ausreicht, um länderspezifische Sonderzeichen wie bspw. ein "ä" darzustellen, nimmt man pro Zeichen einfach ein oder mehrere "Octets" also Bytes (das sind jeweils Abfolgen von 8 bit) dazu. UTF-8 nutzt bspw. bis zu 4 Byte und ist ASCII-abwärtskompatibel.

So kann nun nicht mehr nur jeder Nummer zwischen 0 und 255 ein Zeichen zugeordnet werden, sondern jeder Nummer zwischen 0 und 65535, wenn man nur ein zusätzliches Byte nutzt.

Jeder UTF-8-Fähige Browser stellt nun, sobald ein Dokument mit der entsprechenden Information "das ist ein UTF-8-Codiertes Dokument" geliefert wird, 2Byte-Zeichen eben als ein Zeichen dar, einfache ein-Byte-ASCII-Zeichen weiterhin ebenfalls als "normales" Zeichen dar. D.h., für die "normalen" Zeichen ist weiterhin nur ein Byte erforderlich.

Ist die Software NICHT UTF-8-fähig, oder der Zeichensatz unterstützt die 2-Byte-Zeichen nicht, oder aber sogar die Seite wurde nicht mit einem entsprechenden UTF-8-Header oder BOM ausgeliefert, werden 2-Byte Zeichen eben als das dargestellt, was der Browser interpretiert: Als 2 "falsch" codierte 1-Byte-Zeichen.


Zuletzt bearbeitet von bacon am Mo 28.10.2013 10:49, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
JohnnyCage
Gesperrt

Dabei seit: 11.12.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 28.10.2013 11:45
Titel

Antworten mit Zitat Zum Seitenanfang

Der erste Part ist super und sollte ChrisKam ein wenig auf die Sprünge helfen können, der zweite geht aber, wobei das natürlich auch alles korrekt ist, am TE-Topic vorbei.

Es sind ganz einfach zwei Zeichen, ein Basiszeichen und ein Combining-Zeichen, welche in manchen Browser-Schriftkombinationen falsch dargestellt werden. Das es falsch dargestellt wird liegt mit Sicherheit an der Schriftdatei.

Combining-Zeichen sind Zeichen die mit ihrem Vorgänger kombiniert werden. Man kann z.B. über ein u ein ^ stellen. Oder eine Tilde. Oder beides. Oder eben ein Doppelpunkt über ein a damit daraus ein ä wird.

Es gibt aber für manche Kombinationen auch die Precomposed-Zeichen, als eigenes Zeichen. Wie eben das ä. In dieser Form als Precomposed-Zeichen wird das ä auch korrekt dargestellt während gleichzeitig das ä als Kombination aus Basis-Zeichen und Combining-Zeichen falsch dargestellt wird.
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 28.10.2013 12:51
Titel

Antworten mit Zitat Zum Seitenanfang

Du gibst dem Kind nur n anderen Namen: http://de.wikipedia.org/wiki/Diakritisches_Zeichen#Unicode
Unterm Strich (*zwinker*) sind auch das zwei Oktette hintereinander.

Du hast insofern Recht, dass das Problem sicher im unterstützenden Schriftsatz zu suchen ist, die Ursache allerdings ist letztlich eine falsche Codieren. Wenn direkt auf den passenden Unicode des Zeichens "ä" zurückgegriffen würde, könnte man den Schlamassel vermeiden.
Zitat:

Wie eben das ä. In dieser Form als Precomposed-Zeichen wird das ä auch korrekt dargestellt während gleichzeitig das ä als Kombination aus Basis-Zeichen und Combining-Zeichen falsch dargestellt wird.


achso, ja klar. Kann man natürlich so stehen lassen. Wer lesen kann ... *zwinker* Sorry.


Zuletzt bearbeitet von bacon am Mo 28.10.2013 12:55, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden
JohnnyCage
Gesperrt

Dabei seit: 11.12.2012
Ort: -
Alter: -
Geschlecht: -
Verfasst Mo 28.10.2013 13:37
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:

..eine falsche Codieren. Wenn direkt auf den passenden Unicode des Zeichens "ä"..


Ist aber ja eigentlich nicht falsch. Beide Varianten sind laut Unicode äquivalent.
  View user's profile Private Nachricht senden
 
Ähnliche Themen CSS für bestimmtes Element auf fremden Webseite ermitteln
E-Mail Text Codierung
[PHP] Preis ermitteln.
Aus PDF die Quelldatei ermitteln
JSP: Aktuelle Jahreszahl ermitteln
Automatisch Schriftfarbe ermitteln
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4
MGi Foren-Übersicht -> Allgemeines - Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.