sql >> Database >  >> RDS >> Mysql

Probleem met tekencodering met PHP Simple HTML DOM Parser

@deceze en @Shakti bedankt voor jullie hulp.

+1 voor de artikellink die is gepost door deceze (Unicode van voren naar achteren verwerken in een webapp ) en het is ook de moeite waard om Encoding te begrijpen

Na het lezen van uw opmerkingen, antwoord en natuurlijk die twee artikelen, heb ik eindelijk mijn probleem opgelost.

Ik heb de stappen vermeld die ik tot nu toe heb gedaan om dit probleem op te lossen:

  1. Toegevoegd header('Content-Type: text/html; charset=utf-8'); bovenaan mijn init.php-bestand,
  2. KARAKTERSET van mijn databasetabelveld waarin die waarde wordt opgeslagen, gewijzigd in UTF-8,
  3. Stel MySQL-verbindingstekenset in op UTF-8 mysql_set_charset('utf8', $connection_link_id);
  4. Gebruikte htmlentities() functie om karakters te converteren $meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

Nu lijkt het probleem opgelost te zijn, MAAR ik moet nog steeds het volgende doen om dit probleem VOLLEDIG op te lossen.

  1. Verkrijg de gecodeerde tekenset van de bron $source_charset .
  2. Verander de codering van de tekenreeks in UTF-8 als deze al niet in dezelfde codering staat. Hiervoor is de enige beschikbare PHP-functie iconv() . Voorbeeld:iconv($source_charset, "UTF-8", $meta_title_raw);

Voor het verkrijgen van $source_charset Ik moet waarschijnlijk wat trucjes of multi-checking gebruiken. Zoals het controleren van headers en metatags enz. Ik vond een goed antwoord op codering detecteren

Laat het me weten als er verbeteringen of fouten zijn in mijn bovenstaande stappen.



  1. Hoe NULL retourneren als het resultaat leeg is?

  2. SQL-venster selecteren rond bepaalde rij

  3. MERGE:bijwerken van bron- en doeltabellen die zich op afzonderlijke servers bevinden

  4. join op twee externe sleutels uit dezelfde tabel in SQL