mb_internal_encoding('UTF-8')sam nic nie robi, ustawia tylko domyślny parametr kodowania dla każdegomb_funkcjonować. Jeśli nie używasz żadnegomb_funkcja, to nie ma żadnego znaczenia. Jeśli tak, warto to ustawić, aby nie trzeba było przekazywać$encodingparametr za każdym razem indywidualnie.- IMO
mb_detect_encodingjest w większości bezużyteczny, ponieważ zasadniczo niemożliwe jest dokładne wykrycie kodowania nieznanego tekstu. Powinieneś albo wiedzieć, w jakim kodowaniu jest blob tekstu, ponieważ masz na ten temat specyfikację, albo musisz przeanalizować odpowiednie metadane, takie jak nagłówki lub metatagi, w których określone jest kodowanie. - Korzystanie z
mb_check_encodingsprawdzenie, czy blob tekstu jest prawidłowy w kodowaniu, w którym oczekujesz, że się znajduje, jest zwykle wystarczające. Jeśli tak nie jest, odrzuć go i wyrzuć odpowiedni błąd. -
Odnośnie:
Jeśli manipulujesz ciągami zawierającymi znaki wielobajtowe, to tak, musisz użyć
mb_funkcje, aby uniknąć uzyskania błędnych wyników. Podstawowe funkcje ciągów działają tylko na poziomie bajtów, a nie na poziomie znaków, czego zwykle potrzebujesz podczas pracy z ciągami. utf8_general_ciw porównaniu zutf8_binma znaczenie tylko wtedy, gdy zestawianie , czyli sortowanie i porównywanie ciągów. Zutf8_bindane są traktowane w postaci binarnej, tzn. tylko identyczne dane są identyczne. Zutf8_general_cistosuje się pewną logikę, m.in. "é" sortuje się razem z "e", a wielkie litery są uważane za takie same jak małe.