tester001: Charset für bestimmte Zeichenkette ändern

Hallo liebe Forumsmitglieder,

ich habe folgendes Problem:
Ich möchte gerne einem bestimmten Text-Bereich einer HTML Seite mitgeben, dass dieser in einem anderen Character Set codiert ist, als der Rest der Seite. Also quasi so etwas ähnliches wie:

<useCharSet value="utf-8">blablabla</useCharSet>

Um euren möglichen Nachfragen vorwegzugreifen:

  • Ja, es ist ein sehr außergewöhnliches Anliegen.
  • Ja, es mag sich anhören als sei ich etwas verwirrt.
  • Es gibt gewisse Vorraussetzungen:
      - Ich verwende ein CMS, für welches bereits definiert ist, welches Charset alle Seiten haben.
      - Ich gebe für meine Seite ein anderes als dieses Standardcharset vor, da es auf dieser Seite zu bestimmten Sonderzeichen kommt.
      - Das System generiert mir einen automatischen Text, von dem es selbst denkt, dass es charset A hat (wie alle anderen Seiten), jedoch verwendet die Seite ja charset B (manuell definiert)
      - Ich möchte nicht das generelle Charset abändern, das im CMS definiert ist, da das einiges an Arbeit nach sich ziehen würde

Das heißt also, ich kann weder den Text, den ich in einem anderen Charset möchte beeinflussen, noch kann ich das Charset der Seite anpassen. Deshalb meine Idee, ob ich um den Text etwas bauen kann, das dem Browser vermittelt, dass jetzt gleich ein anders codierter Text kommt.

Für mögliche Ideen wäre ich sehr dankbar.
tester001

  1. entities oder nummerische referenzen werden dir wohl als einziges übrigbleiben, wenn es dir nicht möglich ist, alle dokumente ordentlich mit einer codierung zu versehen, die alle genutzen zeichen umfasst (uft-8 zb)

    1. Hallo Gunnar, Hallo suit,

      ich stimme mit euch vollkommen überein, dass eine Umstellung der Zeichencodierung für das gesamte CMS-Projekt der beste und sicherste Weg wäre. Jedoch bedeutet das einen sehr hohen Umstellungs- und Testaufwand den ich momentan wegen der einen Ausnahme nicht betreiben möchte.

      Ich habe einen Weg gefunden, der auf euren Vorschlägen aufbaut. Mit einem kleinen PHP Code ersetze ich die üblichen Umlaute in dem vorgenerierten Textfeld durch die jeweiligen Entities.

      Mir ist natürlich klar, dass ich damit sehr stümperhaft das Symptom kuriert habe. Die Ursache jedoch bleibt erstmal unbehandelt :-).

      Danke euch beiden für die Tipps.

      Grüße
      tester001

  2. @@tester001:

    Ich möchte gerne einem bestimmten Text-Bereich einer HTML Seite mitgeben, dass dieser in einem anderen Character Set codiert ist,

    Vewechsle nicht Zeichensatz mit Zeichencodierung!

    Deshalb meine Idee, ob ich um den Text etwas bauen kann, das dem Browser vermittelt, dass jetzt gleich ein anders codierter Text kommt.

    Nein, die Zeichencodierung gilt für das gesamte Dokument.

    Willst du Zeichen verwenden, die die vom CMS vorgeschriebene Codierung nicht unterstützt, bleibt dir nur, die betreffenden Zeichen zu escapen.

    Besser wäre natürlich, das ganze CMS würde UTF-8 verwenden. Ist die Umstellung eine Option?

    Live long and prosper,
    Gunnar

    PS: 4 von 7 auf einen Streich ;-)

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.