hawkmaster: Oktalcode übersetzen??

Hallo zusammen,
in verschieden sprachigen Textdateien finden sich Sonderzeichen die im Oktalcode dargestellt sind.

z.b. im deutschen Text <FC> für das "ü" bei Broschüre;
Brosch<FC>re
oder im französischen;
R<E9>ceptacle

Gibt es irgend eine Funktion oder Möglichkeit dies "richtig" also im Browser leesbar darzustellen?

vielen Dank und viele Grüße
hawk

  1. z.b. im deutschen Text <FC> für das "ü" bei Broschüre;
    Brosch<FC>re

    Gibt es irgend eine Funktion oder Möglichkeit dies "richtig" also im Browser leesbar darzustellen?

    FC ist nicht oktal sondern hexadezimal - oktal kennt nur die ziffern 0-7

    du kannst die zeichen zb fast 1:1 als nummerische referenz darstellen

    1. Hallo suit,

      danke für den Hinweis.
      Habe ich das richtig verstanden das ich dann also den Hex Wert FC zuerst in Unicode umwandeln muss um diesen dann im Browser darzustellen?

      du kannst die zeichen zb fast 1:1 als nummerische referenz darstellen

      vielen Dank und viele Grüße
      hawk

      1. Habe ich das richtig verstanden das ich dann also den Hex Wert FC zuerst in Unicode umwandeln muss um diesen dann im Browser darzustellen?

        geht auch viel einfacher:

        "&#x3B1;
        Das x notieren Sie dann, wenn Sie die Nummer hexadezimal angeben."

        für dein kleines ü ersetzt du im Endeffekt <FC> durch &#xFC; und gut ist

        1. Na das ist natürlich noch besser.

          geht auch viel einfacher:
          "&#x3B1;
          Das x notieren Sie dann, wenn Sie die Nummer hexadezimal angeben."
          für dein kleines ü ersetzt du im Endeffekt <FC> durch &#xFC; und gut ist

          ich hatte es jetzt so versucht um den Satz nach diesen <..> zu durchsuchen und richtig darzustellen.
          if (preg_match_all("#<(.*?)>#", $item, $contents)){
          $special_char = preg_replace("#<(.*?)>#","&#" .  hexdec($contents[1][0]),$item);
          echo "Das sonderzeichen ist " . $special_char . "<br>";
          }

          vielleicht übertrieben aber es funktioniert.

          Noch eine abschließende Frage:
          Ich muss dann das gefundene Wort, also etwa Broschüre (das vorher Brosch<FC>re war) in einer Datenbank (mySQL Feld varchar250) speichern.
          Würdest du das so wie angezeigt speichern oder die Umlaute besser in Unicode?

          vielen Dank und viele Grüße
          hawk

          1. hexdec($contents[1][0]),$item);

            wenn du statt &#252; (dezimal) einfach &#xFC; (hex) schreibst, sparst du dir hexdec

            Würdest du das so wie angezeigt speichern oder die Umlaute besser in Unicode?

            die richtige zeichencodierung ist nummerischen referenzen oder entities immer vorzuziehen (wenns möglich ist)

            statt &#xFC; kannst du auch chr(hexdec('FC')); schreiben oder auf deinen aktuellen text html_entity_decode() anwenden