@deceze a @Shakti děkuji za vaši pomoc.
+1 za odkaz na článek zveřejněný decezem (Zpracování Unicode zepředu dozadu ve webové aplikaci ) a také stojí za přečtení Porozumění kódování
Po přečtení vašich komentářů, odpovědí a samozřejmě těchto dvou článků jsem svůj problém konečně vyřešil.
Uvedl jsem kroky, které jsem dosud provedl k vyřešení tohoto problému:
- Přidáno
header('Content-Type: text/html; charset=utf-8');
v horní části mého souboru init.php, - Změněna ZNAKOVÁ SADA pole mé databázové tabulky, které ukládá tyto hodnoty do UTF-8,
- Nastavte znakovou sadu připojení MySQL na UTF-8
mysql_set_charset('utf8', $connection_link_id);
- K převodu znaků byla použita funkce htmlentities()
$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');
Nyní se zdá, že je problém vyřešen, ALE stále musím udělat následující věc, abych tento problém vyřešil PLNĚ.
- Získejte kódovanou znakovou sadu ze zdroje
$source_charset
. - Změňte kódování řetězce na UTF-8, pokud již není ve stejném kódování. Za tímto účelem je jedinou dostupnou funkcí PHP
iconv()
. Příklad:iconv($source_charset, "UTF-8", $meta_title_raw);
Za získání $source_charset
Asi budu muset použít nějaké triky nebo vícenásobnou kontrolu. Jako kontrola záhlaví a metaznaček atd. Dobrou odpověď jsem našel na adrese Zjistit kódování
Dejte mi vědět, zda došlo k nějakému vylepšení nebo nějaké chybě v mých výše uvedených krocích.