## Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Options de configuration mbstring
Nom | Défaut | Modifiable | Historique
--- | --- | --- | ---
mbstring.language | "neutral" | `INI_ALL` |
mbstring.detect_order | NULL | `INI_ALL` |
mbstring.http_input | "pass" | `INI_ALL` | Obsolète
mbstring.http_output | "pass" | `INI_ALL` | Obsolète
mbstring.internal_encoding | NULL | `INI_ALL` | Obsolète
mbstring.substitute_character | NULL | `INI_ALL` |
mbstring.func_overload | "0" | `INI_SYSTEM` | Obsolète à partir de PHP 7.2.0; supprimée à partir de PHP 8.0.0.
mbstring.encoding_translation | "0" | `INI_PERDIR` |
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | `INI_ALL` |
mbstring.strict_detection | "0" | `INI_ALL` |
mbstring.regex_retry_limit | "1000000" | `INI_ALL` | Disponible à partir de PHP 7.4.0.
mbstring.regex_stack_limit | "100000" | `INI_ALL` | Disponible à partir de PHP 7.3.5.

Pour plus de détails sur les modes INI_*, reportez-vous à Où une directive de configuration peut être modifiée.

Voici un éclaircissement sur l'utilisation des directives de configuration.

`mbstring.language` string

  Définit le langage utilisé par mbstring. Notez que cette option définit `mbstring.internal_encoding` `mbstring.internal_encoding` doit être placé après `mbstring.language` dans le fichier php.ini

`mbstring.encoding_translation` bool

  Active la détection et la traduction des données d'entrées HTTP vers le codage interne mbstring.

`mbstring.internal_encoding` string
  Avertissement

  Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

  Définit l'encodage interne par défaut.

  Les utilisateurs devraient laisser cette option vide et définir plutôt l'option `default_charset`.

`mbstring.http_input` string
  Avertissement

  Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

  Définit l'encodage de réception HTTP par défaut.

  Les utilisateurs devraient laisser cette option vide et définir plutôt l'option `default_charset`.

`mbstring.http_output` string
  Avertissement

  Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

  Définit l'encodage d'affichage HTTP par défaut (l'affichage sera converti depuis l'encodage interne vers l'encode HTTP de la sortie, lors de l'affichage).

  Les utilisateurs devraient laisser vide cette option et définir plutôt l'option `default_charset`.

`mbstring.detect_order` string

  Définit l'ordre de détection des encodages par défaut. Voir aussi mb_detect_order().

`mbstring.substitute_character` string

  Définit l'encodage de substitution par défaut : il est utilisé pour les caractères invalides. Voir mb_substitute_character() pour les valeurs supportées.

`mbstring.func_overload` string
  Avertissement

  Cette fonctionnalité est OBSOLÈTE à partir de PHP 7.2.0, et SUPPRIMÉE à partir de PHP 8.0.0. Dépendre de cette fonctionnalité est fortement déconseillé.

  Remplace les fonctions de traitement des chaînes par les fonctions mbstring. Voir les fonctions de remplacement pour plus d'informations.

  Ce paramètre ne peut être changé que depuis le fichier php.ini.

`mbstring.http_output_conv_mimetypes` string

`mbstring.strict_detection` bool

  Active la détection stricte de l'encodage. Voir mb_detect_encoding() pour une description et des exemples.

`mbstring.regex_retry_limit` int

  Limite la quantité de retour en arrière qui peut être effectuée pendant une correspondance mbregex.

  Ce paramètre ne prend effet que lors de la liaison avec oniguruma >= 6.8.0.

`mbstring.regex_stack_limit` int

  Limite la profondeur de la pile des expressions régulières mbstring.

En accord avec » HTML 4.01 specification, les navigateurs sont supposés utiliser le même jeu de caractères lorsqu'ils soumettent un formulaire. Mais, tous les navigateurs ne le font pas. Reportez-vous à la fonction mb_http_input() pour détecter les jeux de caractères utilisés par les navigateurs.

En général, les navigateurs sont suffisamment intelligents pour détecter les jeux de caractères dans le HTML. Néanmoins, il convient de définir le paramètre `charset` de l'en-tête HTTP `Content-Type` à la valeur fournie par la fonction header() ou par l'option de configuration default_charset.

Exemple #1 Configuration de php.ini pour mbstring

    ; Langage par défaut
    mbstring.language        = Neutral; (UTF-8) (par défaut)
    mbstring.language        = English; Anglais
    mbstring.language        = Japanese; Japonais

    ;; Jeu de caractère interne
    ;; Note : assurez-vous que ce jeu fonctionne avec PHP
    mbstring.internal_encoding    = UTF-8

    ;; Activation de la conversion automatique des entrées HTTP
    mbstring.encoding_translation = On

    ;; Jeu de caractères par défaut pour les données d'entrée HTTP
    ;; Note : le script ne peux pas changer cette configuration
    mbstring.http_input           = pass    ; Aucune conversion.
    mbstring.http_input           = auto    ; Utilise auto
                                    ; "auto" est remplacé suivant mbstring.language
    mbstring.http_input           = SJIS    ; Utilise SJIS
    mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

    ;;Jeu de caractères par défaut pour les données de sortie HTTP
    mbstring.http_output          = pass    ; Aucune conversion
    mbstring.http_output          = UTF-8   ; Utilise UTF-8

    ;; Ordre de détection des jeux de caractères
    mbstring.detect_order         = auto    ; Utilise la détection automatique
    mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Spécifie l'ordre

    ;; Déterminer le jeu de caractères de substitution par défaut
    mbstring.substitute_character = 12307   ; Spécifie une valeur Unicode
    mbstring.substitute_character = none    ; Ne pas afficher de caractères
    mbstring.substitute_character = long    ; Exemple complet : U+3000,JIS+7E7E

Exemple #2 Configuration de php.ini pour les utilisateurs de `EUC-JP`

    ;; Désactive la bufferisation de sortie
    output_buffering      = Off

    ;; Choisit le jeu de caractères
    default_charset       = EUC-JP

    ;; Le langage par défaut est le japonais
    mbstring.language = Japanese

    ;; Activation de la traduction automatique des données d'entrée HTTP
    mbstring.encoding_translation = On

    ;; Activation de la conversion automatique
    mbstring.http_input   = auto

    ;; Convertit les sorties en EUC-JP
    mbstring.http_output  = EUC-JP

    ;; Utilise le jeu de caractères interne EUC-JP
    mbstring.internal_encoding = EUC-JP

    ;; Ne pas afficher les caractères invalides
    mbstring.substitute_character = none

Exemple #3 Configuration de php.ini pour les utilisateurs de `SJIS`

    ;; Active la bufferisation de sortie
    output_buffering     = On

    ;; Utilise le gestionnaire mb_output_handler pour la conversion de sortie
    output_handler       = mb_output_handler

    ;; Choisit le jeu de caractères
    default_charset      = Shift_JIS

    ;; Le langage par défaut est le japonais
    mbstring.language = Japanese

    ;; Activation de la traduction automatique des données d'entrée HTTP
    mbstring.http_input  = auto

    ;; Convertit en SJIS
    mbstring.http_output = SJIS

    ;;Utilise le jeu de caractères interne EUC-JP
    mbstring.internal_encoding = EUC-JP

    ;; Ne pas afficher les caractères invalides
    mbstring.substitute_character = none