mb_internal_encoding('UTF-8')nedělá nic samo o sobě, pouze nastavuje výchozí parametr kódování pro každýmb_funkce. Pokud nepoužíváte žádnémb_funkce, na tom není žádný rozdíl. Pokud ano, má smysl to nastavit, abyste nemuseli předávat$encodingparametr pokaždé jednotlivě.- IMO
mb_detect_encodingje většinou k ničemu, protože je v zásadě nemožné přesně detekovat kódování neznámého textu. Měli byste buď vědět, v jakém kódování je blob textu, protože o něm máte specifikaci, nebo musíte analyzovat vhodná metadata, jako jsou záhlaví nebo meta tagy, kde je kódování specifikováno. - Pomocí
mb_check_encodingChcete-li zkontrolovat, zda je blob textu platný v kódování, ve kterém očekáváte, že bude, je obvykle dostačující. Pokud tomu tak není, zahoďte jej a vyvolejte příslušnou chybu. -
O:
Pokud manipulujete s řetězci, které obsahují vícebajtové znaky, pak ano, musíte použít
mb_funkce, aby nedocházelo ke špatným výsledkům. Funkce základních řetězců fungují pouze na úrovni bajtů, nikoli na úrovni znaků, což je to, co obvykle chcete při práci s řetězci. utf8_general_civs.utf8_binrozdíl je pouze při skládání , tedy řazení a porovnávání řetězců. Pomocíutf8_bindata jsou zpracována v binární podobě, tj. identická jsou pouze identická data. Pomocíutf8_general_ciuplatňuje se nějaká logika, např. „é“ se řadí společně s „e“ a velká písmena jsou považována za stejná jako malá.