Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Convertire « nel corrispondente carattere

    SAlve, ho un problema con la conversione dell'entità « nel carattere corrispondente. Ho già provato la funzione html_entity_decode ma senza risultato. Qualcuno sa consigliarmi una soluzione alternativa?


    Grazie mille per l'aiuto
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    puoi postare il codice che hai scritto x convertire il carattere?

  3. #3
    Ho trovato una soluzione che pare funzionare bene, il problema sembra essere il riconoscimento dei caratteri UTF-8, ecco il codice:

    Codice PHP:
    <?php
    function html_entity_decode_utf8($string)
    {
        static 
    $trans_tbl;
       
        
    // replace numeric entities
        
    $string preg_replace('~&#x([0-9a-f]+);~ei''code2utf(hexdec("\\1"))'$string);
        
    $string preg_replace('~&#([0-9]+);~e''code2utf(\\1)'$string);

        
    // replace literal entities
        
    if (!isset($trans_tbl))
        {
            
    $trans_tbl = array();
           
            foreach (
    get_html_translation_table(HTML_ENTITIES) as $val=>$key)
                
    $trans_tbl[$key] = utf8_encode($val);
        }
       
        return 
    strtr($string$trans_tbl);
    }

    // Returns the utf string corresponding to the unicode value

    function code2utf($num)
    {
        if (
    $num 128) return chr($num);
        if (
    $num 2048) return chr(($num >> 6) + 192) . chr(($num 63) + 128);
        if (
    $num 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num 63) + 128);
        if (
    $num 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num 63) + 128);
        return 
    '';
    }
    ?>
    MondoLibero: Informazione Libera, Varia ed Eventuale
    Sito di informazione varia ed eventuale. Quando ho voglia scrivo di ciò che mi pare. Pubblico guide, recensioni, notizie, critiche e tutto ciò che mi passa sotto mano e che penso sia interessante.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.