Hoe te converteren naar HTML entiteiten, zoals – hun karakter middelen?

Ben ik het creëren van een bestand dat is opgeslagen op een lokale computer van de gebruiker (niet weergegeven in een webbrowser).

Ik ben momenteel met behulp van html_entity_decode, maar dit is niet het omzetten van tekens zoals – (dat is de n-dash) en was benieuwd wat andere functie die ik zou moeten gebruiken.

Bijvoorbeeld, als het bestand wordt geïmporteerd in de software, in plaats van het ndash of slechts een – zij zien als –. Ik weet dat ik zou kunnen gebruiken str_replace, maar als het gebeurt, met dit karakter, het zou kunnen gebeuren met de vele anderen omdat de gegevens is dynamisch.

InformationsquelleAutor Cofey | 2011-02-02

 

5 Replies
  1. 32

    Je nodig hebt voor het definiëren van de doelstelling tekenset. – is geen geldig teken in de standaard ISO-8859-1 tekenset, dus het is niet gedecodeerd. Definiëren UTF-8 als de output-charset en het zal decoderen:

    echo html_entity_decode('–', ENT_NOQUOTES, 'UTF-8');

    Als dat mogelijk is, moet u voorkomen dat HTML entiteiten om te beginnen met. Ik weet niet waar ik dat gecodeerde gegevens vandaan komt, maar als je het op te slaan zoals deze in de database of elders, je doet het verkeerd. Altijd opslaan van gegevens UTF-8 gecodeerd en alleen om te zetten naar HTML entiteiten of anderszins te ontsnappen voor de uitgang, wanneer dat nodig is.

    • Goede vraag. Ik dacht dat het raar was dat de vertaling tabel weergegeven door get_html_translation_table() leek te ontbreken – en —. Maar het was niet bij me opgekomen dat het was omwille van de standaard output-charset.
    • Ik gebruik WordPress voor het opslaan van de gegevens in de database.
  2. 17

    Proberen mb_convert_encoding():

    $string = "n–dash";
    $output = mb_convert_encoding($string, 'UTF-8', 'HTML-ENTITIES');
    echo $output;
  3. 1

    UPDATE

    function decode_characters($data)
    {
        $text = $data;
        $enc = mb_detect_encoding($text, "UTF-8,ISO-8859-1");
        $resutl_characters = iconv($enc, "UTF-8", $text);
        return $resutl_characters;
    }
  4. 0

    Het coderen van het bestand als UTF-8 utf8_encode(). Dan hoeft u niet te vervangen/verwijderen.

    • Ik probeerde het toevoegen van charset=utf-8 op mijn kop “header(‘Content-type: text/agenda; charset=utf-8’);” en liep ook de code die weerspiegeld worden in het bestand met behulp van utf8_encode($data);, maar het maakte geen verschil. Enig idee?
  5. 0

    Bent u probeert om de tekens in HTML Entiteiten voor opslag en later ophalen?

    htmlentities('–', ENT_COMPAT, 'UTF-8');
    //Returns "–"

    Als ik je vraag verkeerd gelezen, laat het me weten.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *