Udo-sieht-es-nicht: Unterschiedliche Darstellung desselben Sonderzeichens im selben Browser

Hallo ihr,

ich bin kein Nerd, veröffentliche meine Seiten seit Jahren in identischer Weise, bestehend aus html und css. Meine Kenntnisse sind begrenzt, dennoch gelang es mir stets meine Probleme zu lösen. Dieses eine jedoch nie. Konkret:

Von zwei Seiten, deren Struktur identisch ist, werden bestimmte Sonderzeichen (zum Beispiel der lange Gedankenstrich, oder deutsche Anführungszeichen „“) mal richtig und mal falsch dargestellt.

Längst verwende ich Strategien zur Vermeidung bei neuen Seiten, will aber hunderte der alten Seiten nicht überarbeiten. Es ist auch so, dass nicht alle alten Seiten betroffen sind. Und es ist so, dass zum Zeitpunkt der Erstellung das Problem nicht existent war.

Alle Browser stellen in derselben Weise unterschiedlich dar. Und das Problem ist "stabil". Also nicht heute so morgen so.

Wenn ich den Kopfteil der zwei wirklich primitiv aufgebauten Seiten miteinander vergleiche, finde ich keinen Unterschied. Sie sind identisch. Der Kopf sieht immer so aus

<html>
<head>
<title></title>
<meta name="" content="">

<link rel="stylesheet" href="../../textseite.css" type="text/css">

<style>
<!--
body   {}
#text  {}
-->
</style>
</head>

<body>
<div id="anfang"><a name="anfang">&nbsp;</a></div>
<div id="text">
*dann Text*
</div>

Wie kann nun dieselbe Struktur zu unterschiedlicher Interpretation von Zeichen führen?

Könnt ihr meinen Denkfehler aufspüren?

Danke!

Gruß Udo-sieht-es-nicht``

    1. Du willst/sollst/musst dem Browser den korrekten Content-Type und die Kodierung mitteilen.

    2. Du willst/sollst/musst den potentiell helfenden Dein Problem möglichst exakt zeigen. Vorliegend hast Du dafür die offensichtlich fehlerhaften Webseiten.

  1. Dein Problem kann eigentlich nur ein Missverständis bezüglich der Zeichenkodierung sein. Du hast die Seite anders kodiert gespeichert als der Webserver sie ausliefert oder der Browser es erwartet.
    Gern durcheinandergebracht werden iso-8859-1, windows-1252 und utf-8; die sehen im Großen und Ganzen identisch aus, unterscheiden sich aber in seltener benutzten Zeichen.

    Dein Browser sollte Entwicklerwerkzeuge haben. Firefox versteckt sie zum Beispiel im Hamburger-Menü rechts oben unter dem Punkt "Weitere Werkzeuge", dort "Werkzeuge für Webentwickler" – oder du drückst F12.

    Zu den Entwicklerwerkzeugen gehört die Netzwerkanalsye.

    Öffne sie, lade die betreffende Seite neu. Der Browser sollte dir dann zumindest den Aufruf der Seite anzeigen. Bei Auswahl des Aufrufs zeigt er dir auch die empfangenen Kopfzeilen, unter diesen müsste eine Zeile à la "Content-Type: text/html; charset=UTF-8" erscheinen. Achte auf die charset-Angabe, sie bestimmt die verwendete Zeichenkodierung.

    Vergleiche die Kodierung zwischen den Seiten, die funktionieren, und jenen, die den Fehler zeigen.

    Eine detailierte Anleitung für Firefox findest du unter https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/index.html und https://firefox-source-docs.mozilla.org/devtools-user/network_monitor/request_details/index.html.

    1. Servus!

      Dein Problem kann eigentlich nur ein Missverständis bezüglich der Zeichenkodierung sein. Du hast die Seite anders kodiert gespeichert als der Webserver sie ausliefert oder der Browser es erwartet.
      Gern durcheinandergebracht werden iso-8859-1, windows-1252 und utf-8; die sehen im Großen und Ganzen identisch aus, unterscheiden sich aber in seltener benutzten Zeichen.

      @Kohlrabi hat Recht.

      Des weiteren ist bei Deiner Webseite wsl. noch einiges zu verbessern.

      Schau mal ins Tutorial zum Grundgerüst:

      <!DOCTYPE html>
      <html lang="de">
        <head>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Titel der Seite | Name der Website</title>
      

      Deine Zeile:

      <div id="anfang"><a name="anfang">&nbsp;</a></div>

      zeigt, dass der ganze Webauftritt nicht auf dem neuesten Stand ist.

      Es sollte wohl besser so gehen:

      <header id="anfang">&nbsp;</header>

      Das a-Element mit name-Attribut ist obsolet.

      Herzliche Grüße

      Matthias Scharwies

      --
      Eigentlich hatte ich heute viel vor - jetzt habe ich morgen viel vor!
    2. Hallo Kohlrabi,

      Hilfe zur Selbsthilfe ist immer gut 👍

      Noch zwei Tipps:

      Udo hat zwar nichts davon geschrieben, aber es wäre auch noch denkbar, dass einige Seiten meta charset Angaben mitbringen, die den Fehler lokal beheben oder erzeugen, und andere nicht.

      Es ist auch denkbar, dass manche Seiten tatsächlich im falschen Encoding gespeichert sind, je nach dem, wie alt sie sind, welcher Editor dabei verwendet wurde und welches Upload-Tool.

      Eine Fremdhilfe verlangt aber, wie Jörg schrieb, Links auf gute und schlechte Seiten des Webauftritts.

      Rolf

      --
      sumpsi - posui - obstruxi
  2. @@Udo-sieht-es-nicht

    Wenn ich den Kopfteil der zwei wirklich primitiv aufgebauten Seiten miteinander vergleiche, finde ich keinen Unterschied.

    Und wie sollen wir einen Unterschied finden, wenn du uns die Seiten nicht zeigst?

    Der Kopf sieht immer so aus

    Da finde ich schon einige Fehler:

    <html>
    
    1. Die DOCTYPE-Angabe fehlt. Du willst Browser nicht in den Quirksmodus schicken.
    2. Die Angabe der Sprache fehlt. Für eine deutschsprachige Seite: <html lang="de">
    <title></title>
    <meta name="" content="">
    
    1. title ist bei dir leer oder steht das was Sinnvolles drin?
    2. name/content ist bei dir leer oder steht das was Sinnvolles drin? Da sollte name="viewport" content="width=device-width" gesetzt sein.

    Siehe Grundgerüst

    <link rel="stylesheet" href="../../textseite.css" type="text/css">
    
    <style>
    <!--
    body   {}
    #text  {}
    -->
    </style>
    
    1. type="text/css" ist schon seit mindestens 10 Jahren nicht mehr zeitgemäß. Überflüssig; weg damit!
    2. Die Auskommentierung von CSS-Code (und JavaScript-Code) in HTML ist schon seit mindestens 10 Jahren nicht mehr zeitgemäß. Überflüssig; weg damit!
    <div id="anfang"><a name="anfang">&nbsp;</a></div>
    

    <a name=""> ist bestimmt schon seit 20 Jahren nicht mehr zeitgemäß. Weg damit!

    🖖 Живіть довго і процвітайте

    --
    „Im Vergleich mit Elon Musk bei Twitter ist ein Elefant im Porzellanladen eine Ballerina.“
    — @Grantscheam auf Twitter
  3. Hallo ihr,

    eure Beiträge enthalten viele Ansätze, wenngleich ich sie aufs erste Hinlesen nicht alle verstehe. Schau ich mir nach und nach alles an und werde dann mein Problem sicher lösen können.

    Ich bedanke mich herzlich für eure Mühe!

    Gruß Udo