@deceze i @Shakti dziękujemy za pomoc.
+1 dla linku do artykułu opublikowanego przez deceze (Obsługa Unicode od początku do końca w aplikacji internetowej ) i warto też przeczytać Zrozumienie kodowania
Po przeczytaniu twoich komentarzy, odpowiedzi i oczywiście tych dwóch artykułów, w końcu rozwiązałem mój problem.
Wymieniłem kroki, które wykonałem do tej pory, aby rozwiązać ten problem:
- Dodano
header('Content-Type: text/html; charset=utf-8');
na górze mojego pliku init.php, - Zmieniono ZESTAW ZNAKÓW mojego pola tabeli bazy danych, które przechowuje te wartości na UTF-8,
- Ustaw zestaw znaków połączenia MySQL na UTF-8
mysql_set_charset('utf8', $connection_link_id);
- Użyto funkcji htmlentities() do konwersji znaków
$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');
Teraz wydaje się, że problem został rozwiązany, ALE nadal muszę wykonać następujące czynności, aby rozwiązać ten problem w PEŁNI.
- Pobierz zakodowany zestaw znaków ze źródła
$source_charset
. - Zmień kodowanie ciągu na UTF-8, jeśli nie jest już w tym samym kodowaniu. W tym celu jedyną dostępną funkcją PHP jest
iconv()
. Przykład:iconv($source_charset, "UTF-8", $meta_title_raw);
Aby uzyskać $source_charset
Prawdopodobnie muszę użyć kilku sztuczek lub wielokrotnego sprawdzania. Jak sprawdzanie nagłówków i metatagów itp. Znalazłem dobrą odpowiedź na Wykryj kodowanie
Daj mi znać, jeśli są jakieś ulepszenia lub jakieś błędy w moich powyższych krokach.