sql >> Databáze >  >> RDS >> Mysql

Jak správně zacházet s mezinárodním charakterem v PHP / MySQL / Apache

Apache

Kódování serveru musí být buď nenastaveno, nebo musí být nastaveno na UTF-8. To se provádí pomocí direktivy AddDefaultCharset apache. To může přejít na virtualhost nebo obecný soubor (viz dokumentace).

AddDefaultCharset utf-8

MySql

  • Nastavte řazení databáze na UTF-8
  • Nastavte kódování připojení. Lze to provést, jak někdo řekl pomocí mysqli_set_charset, nebo odesláním tohoto ihned po připojení:
    SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'

PHP

1- Znakovou sadu HTML stránky byste měli nastavit na UTF-8, prostřednictvím metaznačky na stránce nebo pomocí hlavičky PHP:

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

2- K získání délky řetězce byste měli vždy používat verzi mb* funkcí souvisejících s řetězci, například mbstrlen místo strlen.

To by vám mělo umožnit mít UTF-8 všude, od stránek až po data. Test, který můžete udělat:klikněte pravým tlačítkem kamkoli na stránku pomocí firefoxu a vyberte Zobrazit informace o stránce. Efektivní kódování je uvedeno na této stránce.



  1. Sledování latence čtení/zápisu

  2. Pokus o připojení ke vzdálenému hostiteli MySQL (chyba 2003)

  3. Nahrazení \r\n PHP

  4. Jak vybrat počet pomocí Laravelova plynulého tvůrce dotazů?