mb_internal_encoding('UTF-8')gör ingenting av sig själv, den ställer bara in standardkodningsparametern för varjemb_fungera. Om du inte använder någonmb_funktion, det gör ingen skillnad. Om du är det är det vettigt att ställa in det så att du inte behöver passera$encodingparameter varje gång individuellt.- IMO
mb_detect_encodingär för det mesta värdelös eftersom det är i grunden omöjligt att exakt detektera kodningen av okänd text. Du bör antingen veta vilken kodning en textklump finns i eftersom du har en specifikation om den, eller så måste du analysera lämplig metadata som rubriker eller metataggar där kodningen är specificerad. - Med
mb_check_encodingatt kontrollera om en textklump är giltig i den kodning du förväntar dig att den ska vara i är vanligtvis tillräckligt. Om det inte är det, kassera det och skicka ett lämpligt fel. -
Angående:
Om du manipulerar strängar som innehåller multibyte-tecken, ja, du måste använda
mb_funktioner för att undvika att få fel resultat. Kärnsträngsfunktionerna fungerar bara på en bytenivå, inte en teckennivå, vilket är vad du vanligtvis vill ha när du arbetar med strängar. utf8_general_cikontrautf8_bingör bara skillnad när du sorterar , dvs sortera och jämföra strängar. Medutf8_bindata behandlas i binär form, dvs endast identisk data är identisk. Medutf8_general_civiss logik tillämpas, t.ex. "é" sorterar tillsammans med "e" och versaler anses lika med gemener.