Probleme mit charset utf<->iso 8859-1, sowie unverständnis bei browsern mit charset

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit charset utf<->iso 8859-1, sowie unverständnis bei browsern mit charset

    Moin Leuts !

    Momentan quäle ich mich mit einem Projekt herum, und habe ein paar Probleme mit denen ich nicht wirklich klar komme.

    Ich habe eine Seite die dynamisch generiert wird, ein Listing für Imap-folder und fuer die darin enthaltenen nachrichten.
    Standartmäßig wollte ich iso8859-1 als charset verwenden, was wohl Sinn macht in diesen Breiten hier .-).
    Beim Betrachten der Nachrichten wollte ich dann separat in einem Subframe das Charset je nach Einstellung in der mail ändern.

    Soweit die Theorie.
    In der Praxis sieht das so aus daß mir der IE & Mozilla als charset utf-8 auswählen, egal was ich im meta-tag einstelle, kommt alles an , ist im quelltext vorhanden hat aber keinerlei wirkung.

    Der html-validator vom w3c beschwert sich unter anderem auch gerade über dieses Problem.

    Nu weis ich irgendwo nicht wo ich da mit der suche anfangen soll.
    Eine PHP-Einstellung habe ich mal ausprobiert, aber auch dies blieb ohne effekt .


    Hat da jemand ne Idee was das sein koennte ?
    Als server-system habe ich hier nen suse-linux 9, apache 2 mit php-mod dazu, momentan ist das was ich da code nicht ganz online, kanns aber bei fragen gerne online stellen oder den fraglichen code zumailen .-)

    Freue mich über jede Anregung !

    Grüße & Danke !

    Roland

  • #2
    Wie sieht denn der Anfang Deiner HTML-Texte aus ... sind alle Headangaben korrekt?
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Hallo !

      Na das hoffe ich doch daß ich da nicht einen saublöden Fehler gemacht habe den ich grade einfach übersehe .-)

      PHP - Code schaut wie folgt aus, also der Anfang .

      <?php
      /* Testweise Output-buffering */
      // ob_start();
      /*
      * To show folders where no folders have been showed before !
      *
      */
      // include - handling
      require_once "include/config.php";
      require_once "include/strings_EN.php";
      require_once "include/dbWrapper.php";

      /* session - handling */
      session_start();
      // Loginhandling
      if ( session_is_registered('UserLoggedIn') == true ) {
      if ( $debug == true ) {
      print "yup Login worked";
      }
      // sonste nixxe . nächster Fall fängt alles ab.
      }
      if ( session_is_registered("UserLoggedIn") == false ) {
      session_destroy();
      if ( $debug == true ) {
      print "closed because no login ";
      }
      print '<SCRIPT language="JavaScript" type="text/javascript">
      var trans = "index.php";
      window.location.href = trans;
      </script>';
      die("No Session registered.");
      }

      // html-head
      print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
      print "<html>\n";
      print "<head>\n";
      print "<link rel=\"stylesheet\" type=\"text/css\" href=\"style_basic.css\">\n";
      //print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">"\n;
      print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
      print "<script type=\"text/javascript\" language=\"JavaScript\"> var ns4class=''; </script>\n";
      print "</head>\n";
      print "<body>\n";

      // los gehts
      // Datenbankanfrage
      // finde anhand des Users kontodaten
      // ermittele wieviele und welche imap-server es gibt , führe abfrage durch und stelle
      // die folderstruktur dar.
      //
      // Optische Gimmicks : Ordnerstruktur auf und einklappbar ?
      //
      //

      $mbox = imap_open ("{10.42.42.11:143/Imap}", "roland", "blubb");
      $sImapHost = "{10.42.42.11}";



      der erzeugte code dazu schaut so aus ( teilweise jedenfalls )


      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <link rel="stylesheet" type="text/css" href="style_basic.css">
      <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
      <script language="JavaScript">
      var ns4class=''; </script>
      </head>
      <body>

      <table><tr> ..

      Momentan steht da noch der japanische Zeichensatz drinnen, ist allerdings nur um zu sehen ob sich am browser überhaupt was tut ..
      der browser wählt automatisch utf-8 als zeichensatz und zeigt somit einiges , vor allem Umlaute falsch an.

      Die Variable $debug steht auf false, also werden die debug-meldungen nicht angezeigt.

      Das gesamte Sessionhandling im Anfangsstadium habe ich auch mal rauskommentiert, kein erfolg .-( .

      Werde mal später noch in den html-code einen blick hineinwerfen, räume grade hier ein wenig auf, sieht wüst aus nach ein paar Tagen coden.

      Grüße !

      Roland

      Kommentar


      • #4
        Lösung fuer den Anfang ...

        Hallo !

        Für den Anfang habe ich eine Lösung gefunden, was aber nicht das beste ist .-( .
        Habe in der PHP.ini

        default_mimetype = "text/html"
        default_charset = "iso-8859-1"

        eingestellt.
        Letztere war auskommentiert, und aus irgendeinem dubiosen Grund stellt der Webserverseitig den Zeichensatz ein, so daß man ihn per html-code nicht mehr ändern kann, bzw. daß dieser keine wirkung hat.

        So gehts. Stellt den richtigen Zeichensatz ein, ignoriert aber weiterhin fleissig die meta-tags.

        Sollte aber meiner Ansicht nach nicht so sein, sonst wären ja die entsprechenden Meta-tags vollkommen fuer die Katz' .


        Ist alles irgendwie momentan arg seltsam .-)

        Freue mich natuerlich noch auf weitere denkansätze zu dem Problem hier .


        Grüße und mal ne gute Nacht !

        Roland

        Kommentar


        • #5
          hatte gerade ein ähnliche problem. hab auch im meta zeichentabellen angegeben, die aber völlig ignoriert wurden. grund waren einstellungen in der http.conf, die standardmässig den header voraus geschickt hat und in dem war dann die iso-8859-1 angegeben, ich wollte aber gb23++ irgendwas.
          das heißt, du musst einen header voraus schicken, dann klappt problemlos.
          PHP-Code:
          header("Content-type: text/plain; charset=gb2312"); 
          [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

          Kommentar


          • #6
            Re: Lösung fuer den Anfang ...

            Original geschrieben von Skye
            So gehts. Stellt den richtigen Zeichensatz ein, ignoriert aber weiterhin fleissig die meta-tags.
            Sollte aber meiner Ansicht nach nicht so sein, sonst wären ja die entsprechenden Meta-tags vollkommen fuer die Katz' .
            diese meta-angaben sind, wie schon die bezeichnung HTTP-EQUIV sagt, vor allem dafür gedacht, diese angaben im dokument selbst mitzugeben, wenn sie per HTTP-header nicht realisierbar sind (z.b. auch bei aufruf der seite über's lokale filesystem des clients).

            wenn aber bereits per HTTP-header eine solche angabe gemacht wird, hat diese eine höhere priorität.

            der vorschalg von mister_x1 ist also die bessere möglichkeit.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              vorschlag von mister_x1 hat funktioniert

              Hallo !

              Also, habe die Idee von mister_x1 umgesetzt, es funktioniert.
              Hätte das eigentlich nicht gedacht da ich letztens schon massig Probleme mit dem header(xyz) und dem session_start hatte, daß session_start() nicht funktionierte und massig warnings lieferte.

              Okay, momentan funnktioniert es, und ich bin damit recht happy .-)

              Nochmals vielen Dank fuer Eure Hilfe !

              Grüße !

              Roland

              Kommentar

              Lädt...
              X