mb_internal_encoding('UTF-8')
gør ikke noget af sig selv, den indstiller kun standardkodningsparameteren for hvermb_
fungere. Hvis du ikke bruger nogenmb_
funktion, det gør ingen forskel. Hvis du er, giver det mening at indstille det, så du ikke behøver at bestå$encoding
parameter hver gang individuelt.- IMO
mb_detect_encoding
er for det meste ubrugelig, da det er fundamentalt umuligt nøjagtigt at detektere kodningen af ukendt tekst. Du bør enten vide, hvilken kodning en klat tekst er i, fordi du har en specifikation om den, eller du skal parse passende metadata såsom overskrifter eller metatags, hvor kodningen er angivet. - Brug af
mb_check_encoding
at kontrollere, om en klat tekst er gyldig i den kodning, du forventer, at den er i, er typisk tilstrækkeligt. Hvis det ikke er det, skal du kassere det og smide en passende fejl. -
Angående:
Hvis du manipulerer strenge, der indeholder multibyte-tegn, så ja, du skal bruge
mb_
funktioner for at undgå at få forkerte resultater. Kernestrengsfunktionerne virker kun på et byteniveau, ikke et tegnniveau, hvilket er det, du typisk ønsker, når du arbejder med strenge. utf8_general_ci
vs.utf8_bin
gør kun en forskel, når du samlerer , dvs. sortering og sammenligning af strenge. Medutf8_bin
data behandles i binær form, dvs. kun identiske data er identiske. Medutf8_general_ci
der anvendes en vis logik, f.eks. "é" sorterer sammen med "e" og store bogstaver betragtes som lig med små bogstaver.