sql >> Databasteknik >  >> RDS >> Mysql

Hur man korrekt hanterar internationell karaktär i PHP / MySQL / Apache

Apache

Serverkodningen måste antingen inte vara inställd eller inställd på UTF-8. Detta görs via apache AddDefaultCharset-direktivet. Detta kan gå till virtualhost eller den allmänna filen (se dokumentationen).

AddDefaultCharset utf-8

MySql

  • Ställ in samlingen av databasen till UTF-8
  • Ställ in anslutningskodningen. Det kan göras som någon sa med mysqli_set_charset, eller genom att skicka detta precis efter anslutning:
    SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'

PHP

1- Du bör ställa in HTML-teckenuppsättningen för sidan till UTF-8, via en metatagg på sidan eller via en PHP-rubrik:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-or-
    header('Content-type: text/html; charset=utf-8');

2- Du bör alltid använda mb*-versionen av strängrelaterade funktioner, till exempel mbstrlen istället för strlen för att få stränglängden på en sträng.

Detta bör tillåta dig att ha UTF-8 överallt, från sidorna till data. Ett test du kan göra:högerklicka var som helst på sidan med firefox och välj Visa sidinformation. Den effektiva kodningen listas på den sidan.



  1. Varför måste vi stänga MySQL-databasen efter ett frågekommando?

  2. Det gick inte att ansluta till postgres-servern i en docker från en dockad app

  3. Doctrine 2 mysql FIELD funktion i ordning efter

  4. Hur man lagrar en bild i kolumnen för SQL Server-databastabeller