Mysql
 sql >> Database >  >> RDS >> Mysql

Problema di codifica dei caratteri con PHP Simple HTML DOM Parser

@deceze e @Shakti grazie per il tuo aiuto.

+1 per il collegamento all'articolo pubblicato da deceze (Gestione di Unicode dalla parte anteriore a quella posteriore in un'app Web ) e vale anche la pena leggere Capire la codifica

Dopo aver letto i tuoi commenti, la risposta e, naturalmente, quei due articoli, ho finalmente risolto il mio problema.

Ho elencato i passaggi che ho fatto finora per risolvere questo problema:

  1. Aggiunto header('Content-Type: text/html; charset=utf-8'); nella parte superiore del mio file init.php,
  2. SET DI CARATTERI modificato del campo della tabella del mio database che sta memorizzando quei valori in UTF-8,
  3. Imposta il set di caratteri della connessione MySQL su UTF-8 mysql_set_charset('utf8', $connection_link_id);
  4. Utilizzata funzione htmlentities() per convertire i caratteri $meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

Ora il problema sembra essere risolto, MA devo ancora eseguire le seguenti operazioni per risolvere questo problema in modo COMPLETO.

  1. Ottieni il set di caratteri codificato dalla sorgente $source_charset .
  2. Cambia la codifica della stringa in UTF-8 se non è già nella stessa codifica. Per questo l'unica funzione PHP disponibile è iconv() . Esempio:iconv($source_charset, "UTF-8", $meta_title_raw);

Per ottenere $source_charset Probabilmente devo usare alcuni trucchi o controlli multipli. Come controllare le intestazioni e i meta tag, ecc. Ho trovato una buona risposta su Rileva codifica

Fammi sapere se ci sono miglioramenti o errori sui miei passaggi precedenti.