kostenloser Webspace werbefrei: lima-city


HTML-Entity Nummer und Dezimal-Code?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    oindex

    oindex hat kostenlosen Webspace.

    Hallo


    wie komme ich von einer HTML-Entity Nummer zum Dezimal-Code?

    BSP: wie komme ich von
    €
    auf 128 ??

    mit
    echo ord('€');
    bekomme ich als Ergebnis: 128

    ok, denn mit
    echo chr(128);
    bekomme ich wieder €

    ABER
    wenn ich das Zeichen nicht im "Klartext" als € vorliegen habe,
    sondern nur als
    €


    wie komme ich davon auf den Dezimal-Wert ???

    gibt es eine PHP Funktion, die mir zur HTML-Entity Nummer
    €
    den Dezimal-Wert ausgibt?

    oder über Umweg, aus
    €
    den "klartext" ASCII, den ich dann wieder durch ord() jagen kann ?!


    Beitrag zuletzt geändert: 27.4.2012 14:18:10 von oindex
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    oindex schrieb:
    Hallo


    wie komme ich von einer HTML-Entity Nummer zum Dezimal-Code?

    BSP: wie komme ich von
    €
    auf 128 ??

    mit
    echo ord('?');
    bekomme ich als Ergebnis: 128

    ok, denn mit
    echo chr(128);
    bekomme ich wieder ?

    ABER
    wenn ich das Zeichen nicht im "Klartext" als ? vorliegen habe,
    sondern nur als
    €


    wie komme ich davon auf den Dezimal-Wert ???

    gibt es eine PHP Funktion, die mir zur HTML-Entity Nummer
    €
    den Dezimal-Wert ausgibt?

    oder über Umweg, aus
    €
    den "klartext" ASCII, den ich dann wieder durch ord() jagen kann ?!
    Vergiss nicht:
    &#dezimalwert;
    .
    Dabei musst du aber beachten, dass
    €
    Unicode ist, wo hingegen 128 der einfache ASCII-Wert ist.
  4. Autor dieses Themas

    oindex

    oindex hat kostenlosen Webspace.

    hmm, ok

    aber warum geht dann das:

    $mapping = array();
    $i=0; 
    foreach (get_html_translation_table(HTML_ENTITIES, ENT_QUOTES) as $char => $entity){
       $mapping[$i]['entity']  = $entity;
       $mapping[$i]['char']    = $char;
       $mapping[$i]['code']    = '&#' . ord($char) . ';';
     $i++; 
    } 
    
    print "<pre>\n"; 
    print_r($mapping); 
    print "</pre>\n";


    Problem ist, das get_html_translation_table ... für Einsatz von htmlentities()
    nicht wirklich Alle Sonderzeichen enthält

    ich habe eine Liste zusätzlicher Sonderzeichen, die nicht in htmlentities() berücksichtigt werden
    allerdings nur mit diesem &# Code und als Entities, und bestimmt auch nicht komplett

    Array
    (
        [&#39;] => &apos;
        [&#8722;] => &minus;
        [&#710;] => &circ;
        [&#732;] => &tilde;
        [&#352;] => &Scaron;
        [&#8249;] => &lsaquo;
        [&#338;] => &OElig;
        [&#8216;] => &lsquo;
        [&#8217;] => &rsquo;
        [&#8220;] => &ldquo;
        [&#8221;] => &rdquo;
        [&#8226;] => &bull;
        [&#8211;] => &ndash;
        [&#8212;] => &mdash;
        [&#8482;] => &trade;
        [&#353;] => &scaron;
        [&#8250;] => &rsaquo;
        [&#339;] => &oelig;
        [&#376;] => &Yuml;
        [&#402;] => &fnof;
        [&#913;] => &Alpha;
        [&#914;] => &Beta;
        [&#915;] => &Gamma;
        [&#916;] => &Delta;
        [&#917;] => &Epsilon;
        [&#918;] => &Zeta;
        [&#919;] => &Eta;
        [&#920;] => &Theta;
        [&#921;] => &Iota;
        [&#922;] => &Kappa;
        [&#923;] => &Lambda;
        [&#924;] => &Mu;
        [&#925;] => &Nu;
        [&#926;] => &Xi;
        [&#927;] => &Omicron;
        [&#928;] => &Pi;
        [&#929;] => &Rho;
        [&#931;] => &Sigma;
        [&#932;] => &Tau;
        [&#933;] => &Upsilon;
        [&#934;] => &Phi;
        [&#935;] => &Chi;
        [&#936;] => &Psi;
        [&#937;] => &Omega;
        [&#945;] => &alpha;
        [&#946;] => &beta;
        [&#947;] => &gamma;
        [&#948;] => &delta;
        [&#949;] => &epsilon;
        [&#950;] => &zeta;
        [&#951;] => &eta;
        [&#952;] => &theta;
        [&#953;] => &iota;
        [&#954;] => &kappa;
        [&#955;] => &lambda;
        [&#956;] => &mu;
        [&#957;] => &nu;
        [&#958;] => &xi;
        [&#959;] => &omicron;
        [&#960;] => &pi;
        [&#961;] => &rho;
        [&#962;] => &sigmaf;
        [&#963;] => &sigma;
        [&#964;] => &tau;
        [&#965;] => &upsilon;
        [&#966;] => &phi;
        [&#967;] => &chi;
        [&#968;] => &psi;
        [&#969;] => &omega;
        [&#977;] => &thetasym;
        [&#978;] => &upsih;
        [&#982;] => &piv;
        [&#8194;] => &ensp;
        [&#8195;] => &emsp;
        [&#8201;] => &thinsp;
        [&#8204;] => &zwnj;
        [&#8205;] => &zwj;
        [&#8206;] => &lrm;
        [&#8207;] => &rlm;
        [&#8218;] => &sbquo;
        [&#8222;] => &bdquo;
        [&#8224;] => &dagger;
        [&#8225;] => &Dagger;
        [&#8230;] => &hellip;
        [&#8240;] => &permil;
        [&#8242;] => &prime;
        [&#8243;] => &Prime;
        [&#8254;] => &oline;
        [&#8260;] => &frasl;
        [&#8364;] => &euro;
        [&#8465;] => &image;
        [&#8472;] => &weierp;
        [&#8476;] => &real;
        [&#8501;] => &alefsym;
        [&#8592;] => &larr;
        [&#8593;] => &uarr;
        [&#8594;] => &rarr;
        [&#8595;] => &darr;
        [&#8596;] => &harr;
        [&#8629;] => &crarr;
        [&#8656;] => &lArr;
        [&#8657;] => &uArr;
        [&#8658;] => &rArr;
        [&#8659;] => &dArr;
        [&#8660;] => &hArr;
        [&#8704;] => &forall;
        [&#8706;] => &part;
        [&#8707;] => &exist;
        [&#8709;] => &empty;
        [&#8711;] => &nabla;
        [&#8712;] => &isin;
        [&#8713;] => &notin;
        [&#8715;] => &ni;
        [&#8719;] => &prod;
        [&#8721;] => &sum;
        [&#8727;] => &lowast;
        [&#8730;] => &radic;
        [&#8733;] => &prop;
        [&#8734;] => &infin;
        [&#8736;] => &ang;
        [&#8743;] => &and;
        [&#8744;] => &or;
        [&#8745;] => &cap;
        [&#8746;] => &cup;
        [&#8747;] => &int;
        [&#8756;] => &there4;
        [&#8764;] => &sim;
        [&#8773;] => &cong;
        [&#8776;] => &asymp;
        [&#8800;] => &ne;
        [&#8801;] => &equiv;
        [&#8804;] => &le;
        [&#8805;] => &ge;
        [&#8834;] => &sub;
        [&#8835;] => &sup;
        [&#8836;] => &nsub;
        [&#8838;] => &sube;
        [&#8839;] => &supe;
        [&#8853;] => &oplus;
        [&#8855;] => &otimes;
        [&#8869;] => &perp;
        [&#8901;] => &sdot;
        [&#8968;] => &lceil;
        [&#8969;] => &rceil;
        [&#8970;] => &lfloor;
        [&#8971;] => &rfloor;
        [&#9001;] => &lang;
        [&#9002;] => &rang;
        [&#9674;] => &loz;
        [&#9824;] => &spades;
        [&#9827;] => &clubs;
        [&#9829;] => &hearts;
        [&#9830;] => &diams;
    )


    wenn aber in einem String dann eines der Zeichen im "Klartext" vorkommt, wie das EURO-Zeichen €
    kann ich es damit nicht erkennen und zu Entity (oder Unicode &#) umwandeln

    Auch die Browser-Ausgabe per Copy+Paste in eine .txt Datei geht nicht bei allen Zeichen
    selbst mit Notepad++ und UTF-8 (mit oder ohne BOM) kommen nicht alle Zeichen an
    viele bleiben ? oder so ein nichts-sagendes Viereck .... also kann ich diese dann nicht
    in einem String "erkennen" ... mit Array vergleichen (mit file() aus .txt je Zeile ein Zeichen)

    die Frage ist, wie bekomme ich saubere Ausgabe (sowohl in ISO-8859-1 als auch in UTF8)
    von möglichst allen Sonderzeichen? ... meie Idee war halt Entities bzw. &# Codierung ... ?!

  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    oindex schrieb:
    Auch die Browser-Ausgabe per Copy+Paste in eine .txt Datei geht nicht bei allen Zeichen
    selbst mit Notepad++ und UTF-8 (mit oder ohne BOM) kommen nicht alle Zeichen an
    viele bleiben ? oder so ein nichts-sagendes Viereck .... also kann ich diese dann nicht
    in einem String "erkennen" ... mit Array vergleichen (mit file() aus .txt je Zeile ein Zeichen)

    die Frage ist, wie bekomme ich saubere Ausgabe (sowohl in ISO-8859-1 als auch in UTF8)
    von möglichst allen Sonderzeichen? ... meie Idee war halt Entities bzw. &# Codierung ... ?!
    Vergiss die Zeichenübersetzung und verwend einfach UTF-8. Dabei musst du aber per HTTP-Header die Zeichenkodierung mitschicken und dem Browser so mitteilen, dass es sich um UTF-8 handelt, ansonsten bekommst du die beschriebenen Fehler.
  6. Autor dieses Themas

    oindex

    oindex hat kostenlosen Webspace.

    ja, wenn möglich, dann würde ich gerne direkt als UFT-8 ausgeben

    aber ich bekomme als String (nach Auslesen einer Datei) auch nicht codierte Sonderzeichen rein,
    und diese will ich "erkennen" und dann codieren, damit in Ausgabe dieser Sonderzeichen
    auch richtig dargestellt wird, und nicht als ? oder Viereck

    leider funktioniert utf8_encode() nicht für alle Sonderzeichen
    also brauche ich eine andere Methode um auch diese "lesbar" (in UTF-8) augeben zu können

    Beispiel: in dem String soll eigentlich ein langer Gedankenstrich stehen
    wenn ich mir die dazugehörige XML Datei (Quelltext) ansehe, oder diesen ausgebe
    dann sehe ich anstatt dem Gedankenstrich nur ein ?

    ... ich schätze mal, die Codierung ist schon beim Erstellen der XML-Datei "schief gegangen"
    und ich habe da keine Chance aus dem ? wieder einen Gedankenstrich zu machen




  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    oindex schrieb:
    ja, wenn möglich, dann würde ich gerne direkt als UFT-8 ausgeben

    aber ich bekomme als String (nach Auslesen einer Datei) auch nicht codierte Sonderzeichen rein,
    und diese will ich "erkennen" und dann codieren, damit in Ausgabe dieser Sonderzeichen
    auch richtig dargestellt wird, und nicht als ? oder Viereck

    leider funktioniert utf8_encode() nicht für alle Sonderzeichen
    also brauche ich eine andere Methode um auch diese "lesbar" (in UTF-8) augeben zu können
    Erklär mal warum das nicht funktioniert....

    Schau dir mal folgendes Beispiel an:
    <?php
    $content = file_get_contents('datei.txt');
    header('Content-Type: text/plain; charset=utf-8');
    echo(utf8_encode($content));
    ?>
    Natürlich gibt das nur das aus was in der Datei "datei.txt" drinnen steht, wenn dort schon
    ?
    drinnen stehen kommen auch nur die raus und keine anderen Zeichen.
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!