WS64: Zeilenumbruch erzwingen

Hallo,

ich möchte gerne Zeilenumbrüche erzwingen, falls ein Text zu lange wird (keine Leerzeichen).
Die Sache ist aber ein wenig komplzierter als es scheint.

Das Problem: Ich habe auf einer Webseite sowohl chinesischen als auch englischen Text.
Die Seite beginnt mit folgendem Metatag <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
Dies sorgt dafür, das unter Umständen aufgefordert wird, chinesische Sprachunterstüzung zu installieren.
Wenn jemand dies nicht macht (warum auch wenn man kein chinesisch spricht!) werden alle chinesischen Zeichen als "Unsinn" wie dieser hier dargestellt: °Ñ¼¦ÐØÈâÇгɳ¤Ìõ£¬ºÍëçÁÏ°èÔÈ£¬ëçÖÆ30·ÖÖÓ£¬È¡³ö½ª´Ð¡£
Im Chinesischen sind da durchaus Blanks drin, und wenn die chinesische Sprachunterstützung gewählt wird erfolgen auch alle Zeileumbrüche.
Dummerweise drückt der "Unsinn" jetzt den englischen Text so sehr zusammen, das dieser auch nicht mehr besonders lesbar ist.

Für den MSIE gibt es die Lösung, den entsprechenden chinesischen Bereich mit style="word-wrap:break-word;word-break:break-all" zu bearbeiten. Der chinesiche Text wird nicht geändert, der Unsinnstext bricht um und lässt den englischen Text wie er ist.

Für MSIE wie gesagt klappt das, für Opera und Firefox jedoch nicht.

Kennt jemand eine allgemeingültige Lösung?

Danke!
WS64

  1. echo $begrüßung;

    Dummerweise drückt der "Unsinn" jetzt den englischen Text so sehr zusammen, das dieser auch nicht mehr besonders lesbar ist.

    Du könntest dem Besucher über dem "Unsinn" eine Ausblendmöglichkeit anbieten, mit der er mit ein wenig JavaScript-Hilfe dem "Unsinn" ein display:none verpasst. Diese getroffene Auswahl könntest du auch in einem Cookie ablegen und daraufhin bei anderen Seiten innerhalb deines Projekts gleich beim Laden den "Unsinn" ausblenden.

    echo "$verabschiedung $name";

    1. Du könntest dem Besucher über dem "Unsinn" eine Ausblendmöglichkeit anbieten, mit der er mit ein wenig JavaScript-Hilfe dem "Unsinn" ein display:none verpasst.

      Hmmm, ja, das ginge.
      Und wenn ich jetzt noch auslesen könnte, ob die Seite mit einem "falschen" Zeichensatz dargestellt wird könnte ich das sogar automatisch machen...

      Kann ich den gerade angezeigten Zeichensatz auslesen?

      Bye
      WS

      1. Hello out there!

        Kann ich den gerade angezeigten Zeichensatz auslesen?

        ?? Was meinst du?

        Ob die chinesischen Zeichen dasrgestellt werden, ist davon abhängig, ob der Nutzer auf seinem System eine Schriftart installiert hat, die chinesische Zeichen enthält.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      2. Hi,

        Kann ich den gerade angezeigten Zeichensatz auslesen?

        Der Zeichensatz wird doch im Header mitgesendet. Somit ist es von dir abhängig, welcher das ist ;)

      3. echo $begrüßung;

        Und wenn ich jetzt noch auslesen könnte, ob die Seite mit einem "falschen" Zeichensatz dargestellt wird könnte ich das sogar automatisch machen...

        Mir scheint, dass du mit den Begrifflichkeiten noch nicht richtig klarkommst.
        Unter Zeichensatz (englisch: charset) versteht man eine Vorschrift zum Zuweisen eines Wertes zu einem Zeichen. Unabhängig von der konkreten Darstellung (z.B. am Bildschirm) wird dem Zeichen A wird beispielsweise der Wert 1 zugewiesen, dem B die 2, usw. Real existierende Zeichensätze tragen Namen wie ISO-8859-1, GB2312 oder Unicode. (UTF-8 etc. ist eine Vorschrift, wie man Unicode-Werte auf einzelne Bytes abbildet, also kein eigener Zeichensatz.)
        Die Zeichen in einem Dokument sind in einem bestimmten Zeichensatz kodiert. Damit der Empfänger dieses Dokuments weiß, wenn er einen bestimmten Wert vorfindet, welche Bedeutung dieser hat, bzw. welches Zeichen diesem Wert zugewiesen ist, muss er wissen, welche Kodierung vorliegt, oder anders gesagt: welcher Zeichensatz verwendet wurde.
        Wenn er den Wert korrekt interpretieren konnte, also weiß, welches Zeichen gemeint ist, kann er versuchen, dieses Zeichen darzustellen. Dazu bedient er sich meist eines Fonts (auch Schriftart genannt), der zu diesem Zeichen eine so genannte Glyphe enthält, also ein optisches Abbild dieses Zeichens.

        Nun zu deiner eigentlichen Frage: Soweit ich weiß, gibt es für Javascript oder andere in der Webseite eingebundene Scriptsprachen keinen Mechanismus herauszufinden, ob der Browser eine bestimmte Zeichenkodierung bzw. einen bestimmten Zeichensatz interpretieren kann, ein bestimmter Font vorhanden ist, ein Font für ein bestimmtes Zeichen eine Glyphe enthält oder ob der Browser einen Ersatz-Font gefunden hat, der eine Glyphe für das Zeichen besitzt.

        echo "$verabschiedung $name";

        1. Hello out there!

          Mir scheint, dass du mit den Begrifflichkeiten noch nicht richtig klarkommst.

          Mir scheint, dass das auch auf dich zutrifft.

          Unter Zeichensatz (englisch: charset) versteht man eine Vorschrift zum Zuweisen eines Wertes zu einem Zeichen.

          Nein, das ist die Zeichencodierung.

          Real existierende Zeichensätze tragen Namen wie ISO-8859-1, GB2312 […]

          Das sind Zeichencodierungen.

          […] oder Unicode.

          _Das_ ist ein Zeichensatz. Er entspricht dem Universal _Character Set_ (UCS) nach ISO/IEC 10646.

          UTF-8 etc. ist eine Vorschrift,

          – also eine Zeichencodierung –

          wie man Unicode-Werte auf einzelne Bytes abbildet, also kein eigener Zeichensatz.

          Eben. UTF-8 ist eine Zeichencodierung.

          Die Zeichen in einem Dokument sind in einem bestimmten Zeichensatz kodiert.

          Nein, sondern in einer bestimmten Zeichencodierung. Der Zeichensatz für HTML-Dokumente ist _immer_ UCS.

          welche Kodierung vorliegt, oder anders gesagt: welcher Zeichensatz verwendet wurde.

          Nochmals: Zeichencodierung und Zeichensatz sind keine Sysnonyme.

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
          1. echo $begrüßung;

            Mir scheint, dass du mit den Begrifflichkeiten noch nicht richtig klarkommst.
            Mir scheint, dass das auch auf dich zutrifft.

            Ja, wenn man es ganz genau nimmt, hast du recht. Ich nehme es ja lieber auch gerne ganz genau, gebe jedoch im Zweifelsfall praktischen Erwägungen den Vorzug.

            Unter Zeichensatz (englisch: charset) versteht man eine Vorschrift zum Zuweisen eines Wertes zu einem Zeichen.

            Nein, das ist die Zeichencodierung.

            Zeichensatz ist also im engeren Sinn nur eine Ansammlung von Zeichen, z.B. A, B, C usw.
            Zeichencodierung ist ist dann die Zuweisung zu einem Wert, z.B. A=1, B=2, usw.

            Real existierende Zeichensätze tragen Namen wie ISO-8859-1, GB2312 […]
            Das sind Zeichencodierungen.

            Da stimme ich im engeren Sinne zu.

            […] oder Unicode.
            _Das_ ist ein Zeichensatz. Er entspricht dem Universal _Character Set_ (UCS) nach ISO/IEC 10646.

            Entweder gibt es jetzt hier eine sprachliche Verwirrung oder ... wasweißich.
            Nach meinem Verständnis müsste UCS ein Zeichensatz und Unicode eine Zeichenkodierung nach obiger Definition sein.

            UTF-8 etc. ist eine Vorschrift,
            – also eine Zeichencodierung –

            Und das ist eine Umkodier- bzw. Übersetzungsvorschrift, die die Unicode-Werte in anderer Form darstellt.

            Nochmals: Zeichencodierung und Zeichensatz sind keine Sysnonyme.

            Theoretisch nicht. Praktisch werden diese Begriffe jedoch gern synonym verwendet.

            Content-Type text/html;charset=ISO-8859-1

            Hier müsste also theoretisch statt "charset" eigentlich "charcoding" stehen.

            echo "$verabschiedung $name";

            1. Hello out there!

              Zeichensatz ist also im engeren Sinn nur eine Ansammlung von Zeichen, z.B. A, B, C usw.
              Zeichencodierung ist ist dann die Zuweisung zu einem Wert, z.B. A=1, B=2, usw.

              Ja.

              Nach meinem Verständnis müsste UCS ein Zeichensatz und Unicode eine Zeichenkodierung nach obiger Definition sein.

              Unicode ist (für praktische Belange) dasselbe wie UCS [Wikipedia: UCS] ...

              Eine Zeichencodierung für Unicode ist UTF-8. (UTF: Unicode Transformation Format)

              ... Unicode ist nicht dasselbe wie UTF. Praktisch werden diese Begriffe jedoch gern falsch(!) synonym verwendet.

              Zeichencodierung und Zeichensatz sind keine Sysnonyme.
              Theoretisch nicht. Praktisch werden diese Begriffe jedoch gern synonym verwendet.

              Textpad: Speichern unter > Zeichensatz [sic!]: Unicode [sic!]

              Content-Type text/html;charset=ISO-8859-1
              Hier müsste also theoretisch statt "charset" eigentlich "charcoding" stehen.

              <?xml version="1.0" encoding="ISO-8859-1"?>

              See ya up the road,
              Gunnar

              --
              “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  2. Hello out there!

    Das Problem: Ich habe auf einer Webseite sowohl chinesischen als auch englischen Text.

    Ist das sinnvoll, oder solltest du nicht besser zwei getrennte Seiten, eine chinesisch- und eine englischsprachige, anbieten?

    Dummerweise drückt der "Unsinn" jetzt den englischen Text so sehr zusammen, das dieser auch nicht mehr besonders lesbar ist.

    Dann hast du bei der Erstellung des Layouts etwas falsch gemacht; es ist unflexibel. Vermutlich zerschießt es auch, wenn der Nutzer die Schriftgröße ändert?

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Das Problem: Ich habe auf einer Webseite sowohl chinesischen als auch englischen Text.

      Ist das sinnvoll, oder solltest du nicht besser zwei getrennte Seiten, eine chinesisch- und eine englischsprachige, anbieten?

      Auf lange Sicht werde ich das machen, ja.
      Aber... Bei bestimmten Seiten läßt sich das nicht umgehen (zum Beispiel wenn man die beiden Sprachen vergleichen will, Übersetzungen anbietet und so weiter. Das ist aber hier nicht der Fall, ich habe nur sehr gemischtes Publikum)

      Dummerweise drückt der "Unsinn" jetzt den englischen Text so sehr zusammen, das dieser auch nicht mehr besonders lesbar ist.

      Dann hast du bei der Erstellung des Layouts etwas falsch gemacht; es ist unflexibel. Vermutlich zerschießt es auch, wenn der Nutzer die Schriftgröße ändert?

      Irgendwann wird das Layout bei Vergößerung zerschossen, ja, das läßt sich auch kaum vermeiden wenn man auch nur eine fixe Breite irgendwo verwendet.

      Bye
      WS64

      1. Hello out there!

        Ist das sinnvoll, oder solltest du nicht besser zwei getrennte Seiten, eine chinesisch- und eine englischsprachige, anbieten?

        Auf lange Sicht werde ich das machen, ja.

        Besser auf kurze.

        Bei bestimmten Seiten läßt sich das nicht umgehen (zum Beispiel wenn man die beiden Sprachen vergleichen will, […])

        Deshalb fragte ich.

        Das ist aber hier nicht der Fall, ich habe nur sehr gemischtes Publikum

        ... dem du also zumuten willst, sich selbst auf der Seite das Lesbare rauszusuchen? Gut, bei chinesischen vs. lateinischen Schriftzeichen ist das kein großer kognitiver Aufwand. Aber wozu dem Nutzer Textinhalt übertragen (kostet Zeit) und anzeigen, den er nicht lesen kann?

        Du möchtest also besser getrennte Seite anbieten, besser kurzfristig als langfristig.

        Beschäftige dich dazu mit content negotiation, dann sind beide Seiten unter demselben URI verfügbar; der Browser des Nutzers wählt gemäß seinen Einstellungen die entsprechende Ressource aus.

        Irgendwann wird das Layout bei Vergößerung zerschossen, ja, das läßt sich auch kaum vermeiden wenn man auch nur eine fixe Breite irgendwo verwendet.

        Eben. Man sollte ja auch nirgendwo eine fixe Breite verwenden (für Fließtext).

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    2. Hallo Gunnar,

      Das Problem: Ich habe auf einer Webseite sowohl chinesischen als auch englischen Text.

      Ist das sinnvoll, oder solltest du nicht besser zwei getrennte Seiten, eine chinesisch- und eine englischsprachige, anbieten?

      Dummerweise drückt der "Unsinn" jetzt den englischen Text so sehr zusammen, das dieser auch nicht mehr besonders lesbar ist.

      Dann hast du bei der Erstellung des Layouts etwas falsch gemacht; es ist unflexibel. Vermutlich zerschießt es auch, wenn der Nutzer die Schriftgröße ändert?

      Ich muss jetzt einfach mal bei dir nachfragen, was mit dir los ist. In der letzen Zeit scheint mir, dass du häufig nur noch solche nicht hilfreiche Kommentare postest.
      Was mir eben auffällt ist, dass du zwar sehr kritisch bist, aber neben deiner Kritik keine Lösungsansätze vorstellt. In meiner Wahrnehmung kommen deine Antworten einfach so rüber, dass du schon die Frage des Fragenden in Frage stellst und sie von einem höheren Standpunt aus einfach komplett als Unsinn und Unfähigkeit abkanzelst.
      Sowas bringt keinem der Beteiligten etwas: weder dem Forum als solches, noch dir (außer vielleicht paar böse Antworten) und dem Fragenden schon gar nichts.
      Nun ja, ich wollte einfach nachfragen.

      Grüße
      Thomas

  3. Hallo WS64

    Das Problem: Ich habe auf einer Webseite sowohl chinesischen als auch englischen Text.
    Die Seite beginnt mit folgendem Metatag <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

    Wäre utf-8 für mehrsprachige Seiten nicht besser geeignet?

    Dies sorgt dafür, das unter Umständen aufgefordert wird, chinesische Sprachunterstüzung zu installieren.

    Bei utf-8 wird das wohl nicht passieren.

    Wenn jemand dies nicht macht (warum auch wenn man kein chinesisch spricht!)

    Und wenn man chinesisch sprechen und vor allen Dingen lesen kann, dann
    dürfte die chinesische Sprachunterstützung sowieso installiert sein. Es ist
    also nicht nötig Besucher ohne diese zu nerven.

    werden alle chinesischen Zeichen als "Unsinn" wie dieser hier dargestellt: °Ñ¼¦ÐØÈâÇгɳ¤Ìõ£¬ºÍëçÁÏ°èÔÈ£¬ëçÖÆ30·ÖÖÓ£¬È¡³ö½ª´Ð¡£

    Bei utf-8 gibts normalerweise nur Fragezeichen, die nicht so störend wirken.

    Ich bekomme auf chinesischen Seiten, die utf-8 codiert ausgeliefert werden
    wunderschöne Fragezeichen, die auch umbrechen.

    Kennt jemand eine allgemeingültige Lösung?

    Vielleicht wäre utf-8 eine.

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Hello out there!

      Wäre utf-8 für mehrsprachige Seiten nicht besser geeignet?
      Bei utf-8 wird das wohl nicht passieren.
      Bei utf-8 gibts normalerweise nur Fragezeichen, die nicht so störend wirken.
      Ich bekomme auf chinesischen Seiten, die utf-8 codiert ausgeliefert werden wunderschöne Fragezeichen, die auch umbrechen.
      Vielleicht wäre utf-8 eine.

      Ich hatte mal ’nen Chemielehrer, bei dem war die Antwort auf jede Frage „Schrödinger-Gleichung“. ;-)

      See ya up the road,
      Gunnar

      --
      “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)