sql >> Databasteknik >  >> RDS >> Mysql

Problem med teckenkodning med PHP Simple HTML DOM Parser

@deceze och @Shakti tack för din hjälp.

+1 för artikellänken postad av deceze (Hantera Unicode framifrån och bak i en webbapp ) och det är också värt att läsa Förstå kodning

Efter att ha läst dina kommentarer, svar och naturligtvis de två artiklarna löste jag äntligen mitt problem.

Jag har listat de steg jag gjort hittills för att lösa det här problemet:

  1. Lade till header('Content-Type: text/html; charset=utf-8'); överst i min init.php-fil,
  2. Ändrade CHARACTER SET i mitt databastabellfält som lagrar dessa värden till UTF-8,
  3. Ställ in MySQL-anslutningsteckenuppsättning till UTF-8 mysql_set_charset('utf8', $connection_link_id);
  4. Använde htmlentities()-funktionen för att konvertera tecken $meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

Nu verkar problemet vara löst, MEN jag måste fortfarande göra följande för att lösa det här problemet till fullo.

  1. Hämta den kodade teckenuppsättningen från källan $source_charset .
  2. Ändra kodningen för strängen till UTF-8 om den inte redan är i samma kodning. För detta är den enda tillgängliga PHP-funktionen iconv() . Exempel:iconv($source_charset, "UTF-8", $meta_title_raw);

För att få $source_charset Jag måste nog använda några knep eller multikontroll. Som att kolla rubriker och metataggar etc. Jag hittade ett bra svar på Detektera kodning

Låt mig veta om det finns några förbättringar eller något fel på mina steg ovan.



  1. codeigniter lägger till IS NULL i find_in_set

  2. LOCALTIMESTAMP() Funktion i Oracle

  3. MySQL:SUM() med JOIN returnerar felaktiga värden

  4. Hur man hämtar radantalet för alla tabeller i en SQL SERVER-databas