sql >> Database teknologi >  >> RDS >> Mysql

UTF8 workflow PHP, MySQL opsummeret

  • mb_internal_encoding('UTF-8') gør ikke noget af sig selv, den indstiller kun standardkodningsparameteren for hver mb_ fungere. Hvis du ikke bruger nogen mb_ 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. Med utf8_bin data behandles i binær form, dvs. kun identiske data er identiske. Med utf8_general_ci der anvendes en vis logik, f.eks. "é" sorterer sammen med "e" og store bogstaver betragtes som lig med små bogstaver.


  1. Database sharding vs partitionering

  2. Hvordan får man adgang til mysqli-forbindelse i en anden klasse på en anden side?

  3. Hvor mange MySQL-forespørgsler skal jeg begrænse mig til på en side? PHP / MySQL

  4. Hvad er formålet med at sætte et 'N' foran funktionsparametre i TSQL?