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

Tegnkodningsproblem med PHP Simple HTML DOM Parser

@deceze og @Shakti tak for jeres hjælp.

+1 til artiklens link, der er indsendt af deceze (Håndtering af Unicode fra front til bagside i en webapp ), og det er også værd at læse Forstå kodning

Efter at have læst dine kommentarer, svar og selvfølgelig de to artikler, fik jeg endelig løst mit problem.

Jeg har listet de trin, jeg har gjort indtil videre for at løse dette problem:

  1. Tilføjet header('Content-Type: text/html; charset=utf-8'); på toppen af ​​min init.php-fil,
  2. Ændret CHARACTER SET i mit databasetabelfelt, som gemmer disse værdier til UTF-8,
  3. Sæt MySQL-forbindelsestegnsæt til UTF-8 mysql_set_charset('utf8', $connection_link_id);
  4. Brugte htmlentities()-funktion til at konvertere tegn $meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

Nu ser problemet ud til at være løst, MEN jeg skal stadig gøre følgende for at løse dette problem fuldt ud.

  1. Hent det kodede tegnsæt fra kilden $source_charset .
  2. Skift kodningen af ​​strengen til UTF-8, hvis den ikke allerede er i samme kodning. Til dette er den eneste tilgængelige PHP-funktion iconv() . Eksempel:iconv($source_charset, "UTF-8", $meta_title_raw);

For at få $source_charset Jeg skal nok bruge nogle tricks eller multikontrol. Som at tjekke overskrifter og metatag osv. Jeg fandt et godt svar på Find kodning

Fortæl mig, hvis der er nogen forbedringer eller fejl på mine trin ovenfor.



  1. Php mysql pdo-forespørgsel:udfyld variabel med forespørgselsresultat

  2. Konfigurer Master-Master MySQL-databasereplikering

  3. Hvordan vælger man flere kolonner med samme navn ved hjælp af JPA native forespørgsel?

  4. Fejl:ORA-01704:streng for lang