LXV. Chaînes de caractères multi-octets

Introduction

Même si la plupart des langues peuvent être représentées grâce à un jeu de 128 caractères, il y a d'autres langues qui requièrent des jeux de caractères bien plus grands. Des méthodes de caractères multi-octets ont été développées pour résoudre ce type de problème.

Lorsque vous manipulez des chaînes de caractères multi-octets, pour couper, rechercher ou nettoyer une chaîne, vous devez utiliser deux octets consécutifs, qui représentent un seul caractère. Si vous n'y prenez pas garde, vous allez obtenir une chaîne corrompue et invalide, avec une représentation totalement incompréhensible.

mbstring fournit les fonctions spécifiques de manipulations des chaînes multi-octets pour PHP, qui ne supporte que les jeux mono-octets. De plus, mbstring gère la traduction entre les jeux de caractères disponibles.

mbstring est aussi connu pour gérer l'Unicode, comme UTF-8 et UCS-2 ainsi que de nombreux autres jeux mono-octets, même si mbstring a été conçu à la base pour les pages web japonaises.

Pré-requis de l'encodage en PHP

Les jeux de caractères suivants sont bien supportés par PHP.

  • Jeux de caractères mono-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

  • Jeux de caracètres multi-octets :

    • qui sont compatibles avec la norme ASCII (compatible ISO646) pour les caractères de l'intervalle 00h à 7fh.

    • qui n'utilisent pas les séquences de type ISO2022.

    • qui n'utilisent pas de valeur dans l'intervalle 00h à 7fh dans les séquences composées, qui représentent un caractère unique.

Les jeux de caractères suivants risquent de ne pas fonctionner en PHP.

Exemple 1. Jeux de caractères qui risquent de ne pas fonctionner en PHP

JIS, SJIS, ISO-2022-JP, BIG-5

Même si aucun script PHP écrit avec ces jeux de caractères ne fonctionne, notamment si des chaînes encodées sont utilisées comme identifiants, ou valeurs littérales dans le script, vous pouvez éviter d'utiliser ces jeux en activant le filtre transparent mbstring pour les données d'entrées HTTP.

Note : Il est déconseillé d'utiliser les jeux SJIS, BIG5, CP936, CP949 et GB18030 pour l'encodage interne, à moins que vous ne soyez très familiers avec l'analyseur, le scanneur et le jeu de caractère lui-même.

Note : Si vous avez une base de données connectée à PHP, il est recommandé d'utiliser le même jeu de caractères dans la base et comme jeu interne pour améliorer le confort d'utilisation et les performances.

Si vous utilisez PostgreSQL, le jeu de caractères utilisé dans la base de données et celui de PHP peuvent différer car cette base supporte la traduction automatique de jeu de caractères.

Installation

mbstring est un module PHP. Vous devez activer le module avec le script de configuration configure. Reportez-vous à la section installation pour plus de détails.

Les options de configurations suivantes sont liées au module mbstring.

  • --enable-mbstring=LANG : Active les fonctions mbstring. Cette option est nécessaire pour utiliser les fonctions mbstring.

    A partir de PHP 4.3.0, l'option --enable-mbstring sera activée par défaut, et remplacée par --with-mbstring[=LANG] pour supporter le chinois, coréen et russe. Le jeu de caractères japonais est supporté par défaut. Si --with-mbstring=cn est utilisé, le chinois simplifié sera supporté. Si --with-mbstring=tw est utilisé, le chinois traditionnel sera supporté. Si --with-mbstring=kr est utilisé, le coréen sera supporté. Si --with-mbstring=ru est utilisé, le russe sera supporté. Si --enable-mbstring=ja est utilisé, le japonais sera supporté.

    Si --enable-mbstring=all est utilisé, tous les langages ci-dessus seront activés.

    Note : Le japonais est aussi activé avec --enable-mbstring sans autre option pour une campatibilité ascendante.

  • --enable-mbstr-enc-trans : Active la conversion automatique des données par HTTP, avec le moteur de conversion de mbstring. Si cette option est activée, les données venants du web via HTTP seront converties dans le jeu de caractères mbstring.internal_encoding, automatiquement.

    Note : Depuis PHP 4.3.0, l'option --enable-mbstr-enc-trans sera éliminée, et remplacée par mbstring.encoding_translation. La conversion de jeu de caractères d'entrée HTTP sera activée lorsque cette option sera à On (par défaut, cette option vautOff).

  • --enable-mbregex : active les fonctions d'expressions rationnelles, compatibles avec les caractères multi-octets.

Configuration à l'exécution

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

Tableau 1. Options de configuration

NomPar défautModifiable
mbstring.language"neutral"PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.detect_orderNULLPHP_INI_ALL
mbstring.http_input"pass"PHP_INI_ALL
mbstring.http_output"pass"PHP_INI_ALL
mbstring.internal_encodingNULLPHP_INI_ALL
mbstring.script_encodingNULLPHP_INI_ALL
mbstring.substitute_characterNULLPHP_INI_ALL
mbstring.func_overload"0"PHP_INI_SYSTEM | PHP_INI_PERDIR
mbstring.encoding_translation"0"PHP_INI_SYSTEM | PHP_INI_PERDIR
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

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 boolean

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

mbstring.internal_encoding string

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

mbstring.http_input string

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

mbstring.http_output string

Définit l'encodage d'affichage HTTP par défaut.

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.

mbstring.func_overload string

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

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 suffisament intelligents pour détecter les jeux de caractères dans le HTML. Si charset est activé dans les en-têtes, cela donnera de meilleurs résultats. Changez la valeur de default_charset avec la valeur appropriée dans le fichier ini.

Exemple 2. Configuration de php.ini pour mbstring

; Langage par défaut
mbstring.language        = Neutral; (UTF-8) (par défault)
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é par "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Utilise SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specifie 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 3. 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

;; Acitvation de la converstion 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 4. 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

Types de ressources

Cette extension ne définit aucune ressource.

Constantes pré-définies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

MB_OVERLOAD_MAIL (entier)

MB_OVERLOAD_STRING (entier)

MB_OVERLOAD_REGEX (entier)

Entrées/Sorties HTTP

La conversion automatique des entrées/sorties HTTP peut aussi convertir des données binaires. Les utilisateurs doivent contrôler les conversions, si des données binaires doivent être utilisées via HTTP.

Note : Depuis la version 4.3.2 de PHP, il y a une limitation dans l'utilisation des fonctionnalités mbstring : l'encodage ne sera pas effectué dans les données transmises en méthode POST si l'attribut enctype de la balise form vaut multipart/form-data. Donc, vous devrez convertir les données entrantes vous-même dans ce cas, si nécessaire.

Depuis la version 4.3.3 de PHP, si l'attribut enctype de la balise form vaut multipart/form-data et que la directive du php.ini est positionnée à On, les variables et les noms de fichiers téléchargés en méthode POST seront convertis avec l'encodage interne. Sinon, la conversion ne sera pas faite.

  • Entrée HTTP

    Il n'y a pas de moyens de contrôler la conversion des caractères HTTP en entrée, depuis un script PHP. Pour désactiver cette conversion, il faut le faire dès le fichier php.ini.

    Exemple 5. Désactive la conversion HTTP dans le php.ini

    ;; Désactive la conversion HTTP
    mbstring.http_input = pass
    ;; Désactive la conversion HTTP (PHP 4.3.0 ou plus récent)
    mbstring.encoding_translation = Off

    Lorsque vous utilisez PHP comme module Apache, il est possible d'annuler la configuration du php.ini pour chaque Virtual Host dans le fichier httpd.conf ou par dossier avec le fichier .htaccess. Reportez-vous à la section de configuration ainsi qu'au manuel Apache.

  • Sorties HTTP

    Il y a plusieurs moyens d'activer la conversion en sortie de script PHP. L'un d'entre eux utilise php.ini, un autre utilise ob_start() avec la fonction mb_output_handler() comme fonction de call-back.

    Note : Pour les utilisateurs PHP3-i18n, le système de conversion de mbstring diffère de celui de PHP3-i18n. Le jeu de caractère est converti avec un buffer de sortie.

Exemple 6. Exemple de configuration de mbstring dans php.ini

;; Active la conversion de sortie pour toutes les pages PHP

;; Active la bufferisation de sortie
output_buffering    = On

;; Choisi mb_output_handler pour effectuer la conversion de sortie
output_handler      = mb_output_handler

Exemple 7. Exemple de script avec mbstring

<?php

// Active la conversion de caractère uniquement pour cette page

// Choisi le jeu de caractères SJIS
mb_http_output('SJIS');

// Commence la bufferisation et spécifie "mb_output_handler"
// comme fonction de callback
ob_start('mb_output_handler');

?>

Jeux de caractères supportés

Actuellement, les jeux de caractères suivants sont supportés par mbstring. L'encodage de caractère peut être spécifié par les paramètres encoding dans les fonctions mbstring.

Les jeux de caractères suivants sont supportés par mbstring :

  • UCS-4

  • UCS-4BE

  • UCS-4LE

  • UCS-2

  • UCS-2BE

  • UCS-2LE

  • UTF-32

  • UTF-32BE

  • UTF-32LE

  • UTF-16

  • UTF-16BE

  • UTF-16LE

  • UTF-7

  • UTF7-IMAP

  • UTF-8

  • ASCII

  • EUC-JP

  • SJIS

  • eucJP-win

  • SJIS-win

  • ISO-2022-JP

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • HTML-ENTITIES

  • 7bit

  • 8bit

  • EUC-CN

  • CP936

  • HZ

  • EUC-TW

  • CP950

  • BIG-5

  • EUC-KR

  • UHC (CP949)

  • ISO-2022-KR

  • Windows-1251 (CP1251)

  • Windows-1252 (CP1252)

  • CP866 (IBM866)

  • KOI8-R

Les entrées du fichier php.ini, qui acceptent des noms de jeux de caractères, acceptent aussi les valeurs "auto" et "pass". Les fonctions mbstring, qui acceptent des noms de jeux de caractères, acceptent aussi la valeur "auto".

Si "pass" est utilisée, aucune conversion n'est effectuée.

Si "auto" est défini, la liste sera étendue à la liste des encodages définis par NLS. Par exemple, si NLS vaut Japanese, les valeurs seront "ASCII,JIS,UTF-8,EUC-JP,SJIS".

Voir aussi mb_detect_order().

Exploitation des chaînes multi-octets en PHP

Comme presque tout PHP est écrit pour des langues qui sont simple octets, il y a des difficultés à gérer le japonais. Toutes les fonctions PHP de gestion des chaînes de caractères, comme substr() ne supportent par les chaînes multi-octets.

L'extension Multibyte (multi-octets, alias mbstring) dispose de fonctions de chaînes, qui supportent le multi-octet, comme mb_substr(), qui est un remplaçant de substr().

mbstring supporte aussi le remplacement de fonction, pour permettre le support des chaînes multi-octets sans modifier les scripts PHP. En utilisant ce système de remplacement de fonctions, certains fonctions PHP seront remplacées par leur équivalent de mbstring. Par exemple mb_substr() remplacera substr(). Ce système de remplacement transparent, permet un portage simple et efficace des applications.

mbstring.func_overload, dans le php.ini, doit être configuré avec une valeur positive : 1 remplace la fonction d'envoi de mail ; 2 active les fonction de chaînes ; 4 active les fonctions d'expression rationnelles. Par exemple, avec la valeur 7, toutes les fonctions possibles sont remplacées. Voici la liste complète des fonctions remplacées, avec leur fonction de remplacement.

Note : Il n'est pas recommandé d'utiliser les options des fonctions d'overloading dans un contexte de per-directory, car il n'est pas confirmé encore qu'elles sont suffisemment stables dans un environnement de production et peuvent conduire à un résultat incohérent.

Cas des caractères japonais

La plupart des caractères japonais demandent plus d'un octet pour être représentés. De plus, plusieurs jeux de caractères japonais existent : il y a notamment EUC-JP, Shift_JIS et ISO-2022-JP. Unicode devient de plus en plus populaire, et UTF-8 aussi. Pour développer des applications Web en environnement japonais, il faut savoir que les encodages ci-dessus dépendent de l'application qu'on en fait : entrée/sortie HTTP, bases de données ou courrier électronique.

  • La taille nécessaire à un caractère peut aller jusqu'à 4 octets.

  • Un caractère multi-octets occupe généralement deux octets, à comparer avec les caractères simple-octet traditionnellement utilisés. Les caractères les plus gros sont appelés "zen-kaku" (i.e. grande largeur) et les plus petits sont appelés "han-kaku" (i.e. demi-largeur). Les caractères "zen-kaku" sont généralement de taille constante.

  • Certains encodages de caractères définissent des séquences de début/fin pour les sections multi-octets (00h to 7fh).

  • ISO-2022-JP doit être utilisé pour les protocoles SMTP/NNTP, et les en-têtes ainsi que les entitiés devraient être réencodés en accord avec la RFC correspondante. Bien que cela ne soit pas requis, ca reste une bonne idée car beaucoup de user-agent (agents utilisateurs) populaires ne peuvent pas reconnaître d'autre méthode d'encodage.

  • Les pages Web créées pour les téléphones portables comme i-mode, Vodafone live!, ou EZweb sont supposées utiliser l'encodage Shift_JIS.

Références

Les jeux de caractères multi-octets et leurs techniques sont très complexes. Il n'est pas possible de couvrir tous les aspects en détails ici. Reportez-vous aux URL suivantes pour d'autres ressouces complémentaires :

Jeux de caractères supportés

Jeux de caractères supportés

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: ISO 10646

Description: Le jeu de caractères universel (Universal Character Set), avec 31 bits par caractère, au standard UCS-4 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode.

Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaitre le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: UCS-4

Description: Voir ci-dessus.

Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: ISO-10646-UCS-4

Jeux de caractères: UCS-4

Description: Voir ci-dessus.

Notes: Contrairement à UCS-2, les chaînes sont supposées être au format little endian.

Nom dans le registre IANA: ISO-10646-UCS-2

Jeux de caractères: UCS-2

Description: Le jeu de caractères universel (Universal Character Set), avec 16 bits par caractère, au standard UCS-2 par ISO/IEC 10646. Il est synchronisé avec la dernière version d'Unicode.

Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaitre le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.

Nom dans le registre IANA: ISO-10646-UCS-2

Jeux de caractères: UCS-2

Description: Voir ci-dessus.

Notes: Contrairement à UCS-4, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-32

Jeux de caractères: Unicode

Description: Format de transformation d'Unicode, de 32 bits, dont les cartes correspondent au jeu stantder Unicode. Ce jeu n'est pas identique à UCS-4 car les caractères Unicode étaient limités à des valeurs de 21 bits.

Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaitre le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.

Nom dans le registre IANA: UTF-32BE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-32, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-32LE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-32, les chaînes sont supposées être au format little endian.

Nom dans le registre IANA: UTF-16

Jeux de caractères: Unicode

Description: Format de transformation d'Unicode sur 16 bits. Il faut noter que UTF-16 n'est plus identique à UCS-2 car un mécanisme a été introduit en Unicode 2.0 et UTF-16 fait maintenant référence à un codage de 21 bits.

Notes: Si ce nom est utilisé dans l'outil de conversion, le convertisseur essaie de reconnaitre le texte à partir du dernier BOM (byte order mark), pour connaître l'ordre des bits.

Nom dans le registre IANA: UTF-16BE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-16, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-16BE

Jeux de caractères: Unicode

Description: Voir ci-dessus.

Notes: Contrairement à UTF-16, les chaînes sont supposées être au format big endian.

Nom dans le registre IANA: UTF-8

Jeux de caractères: Unicode / UCS

Description: Format de transformation Unicode de 8 bits.

Notes: none

Nom dans le registre IANA: UTF-7

Jeux de caractères: Unicode

Description: Un format compatible avec le courrier éléctronique d'Unicode, spécifié dans RFC2152.

Notes: none

Nom dans le registre IANA: aucun

Jeux de caractères: Unicode

Description: Une variante d'UTF-7 qui est spécialement utilisée dans le protocole IMAP.

Notes: none

Nom dans le registre IANA: US-ASCII (recommandé) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Jeux de caractères: ASCII / ISO 646

Description: ASCII, American Standard Code for Information Interchange est un format classique de 7 bits. Il est aussi normalisé internationalement, sous le nom ISO 646.

Notes: (none)

Nom dans le registre IANA: EUC-JP (recommandé) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Jeux de caractères: Composé de US-ASCII / JIS X0201:1997 (hankaku kana) / JIS X0208:1990 / JIS X0212:1990

Description: Comme vous le voyez, le nom est dérivé de l'abréviation de Extended UNIX Code Packed Format for Japanese, ce jeu est essentiellement utilisé sur les plates-formes Unix. Le jeu original, Extended UNIX Code, est conçu sur la base de ISO 2022.

Notes: Le jeu identifié par EUC-JP est différent de IBM932 / CP932, qui est utilisé par OS/2® et Microsoft® Windows®. Pour échanger des informations avec ces plates-formes, utilisez EUCJP-WIN.

Nom dans le registre IANA: Shift_JIS (recommandé) / MS_Kanji / csShift_JIS

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997

Description: Shift_JIS a été développé au début des années 80, et, au même moment, les premiers traitements de textes étaient mis sur le marché. Il a été fait pour conserver la compatibilité avec le jeu JIS X 0201:1976. Selon la définition de l'IANA, le jeu de caractères Shift_JIS est légèrement différent de IBM932 / CP932. Cependant, les noms "SJIS" et "Shift_JIS" sont souvent utilisés à tort, pour ces jeux.

Notes: Pour CP932, utilisez SJIS-WIN.

Nom dans le registre IANA: (none)

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: Même si ce "jeu de caractères" utilise le même jeu que EUC-JP, il est en fait différent. Il a juste quelques caractères de différence.

Notes: none

Nom dans le registre IANA: Windows-31J / csWindows31J

Jeux de caractères: Composé de JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: Même si ce "jeu de caractères" utilise le même jeu que Shift_JIS, il est en fait différent. Il a juste quelques caractères de différence.

Notes: (none)

Nom dans le registre IANA: ISO-2022-JP (recommandé) / csISO2022JP

Jeux de caractères: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Notes: aucun

Nom dans le registre IANA: JIS

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-1

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-2

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-3

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-4

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-5

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-6

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-7

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-8

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-9

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-10

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-13

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-14

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-8859-15

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte2be

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte2le

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte4be

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: byte4le

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: BASE64

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: HTML-ENTITIES

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: 7bit

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: 8bit

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-CN

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP936

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: HZ

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-TW

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP950

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: BIG-5

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: EUC-KR

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: UHC (CP949)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: ISO-2022-KR

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: Windows-1251 (CP1251)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: Windows-1252 (CP1252)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: CP866 (IBM866)

Jeux de caractères:

Description:

Notes:

Nom dans le registre IANA: KOI8-R

Jeux de caractères:

Description:

Notes:

Table des matières
mb_convert_case -- Modifie la casse d'une chaîne
mb_convert_encoding -- Conversion d'encodage
mb_convert_kana --  Convertit entre les différents "kana"
mb_convert_variables -- Convertit l'encodage de variables
mb_decode_mimeheader -- Décode un en-tête MIME
mb_decode_numericentity --  Décode les entités HTML en caractères
mb_detect_encoding -- Détecte un encodage
mb_detect_order --  Lit/modifie l'ordre de détection des encodages
mb_encode_mimeheader -- Encode une chaîne pour un en-tête MIME
mb_encode_numericentity --  Encode des entités HTML
mb_ereg_match --  Expression rationnelle POSIX pour les chaînes multi-octets
mb_ereg_replace -- Remplace des segments de chaînes, avec le support des expressions rationnelles mutli-octets
mb_ereg_search_getpos --  Retourne l'offset du début du prochain segment repéré par une expression rationnelle
mb_ereg_search_getregs --  Lit le dernier segment de chaîne multi-octets qui correspond au masque
mb_ereg_search_init --  Configure les chaînes et les expressions rationnelles pour le support des caractères multi-octets
mb_ereg_search_pos --  Retourne la position et la longueur du segment de chaîne qui vérifie le masque de l'expression rationnelle
mb_ereg_search_regs --  Retourne le segment de chaîne trouvé par une expression rationnelle multi-octets
mb_ereg_search_setpos -- Choisit le point de départ de la recherche par expression rationnelle
mb_ereg_search --  Recherche par expression rationnelle multi-octets
mb_ereg -- Recherche par expression rationnelle avec support des caractères multi-octets
mb_eregi_replace --  Expression rationnelle avec support des caractères multi-octets, sans tenir compte de la casse
mb_eregi --  Expression rationnelle insensible à la casse avec le support des caractères multi-octets
mb_get_info -- Lit la configuration interne de l'extension mbstring
mb_http_input -- Détecte le type d'encodage d'un caractère HTTP
mb_http_output -- Lit/modifie l'encodage d'affichage
mb_internal_encoding --  Lit/modifie l'encodage interne
mb_language -- Lit/modifie le langage courant
mb_list_encodings --  Retourne un tableau contenant tous les encodages supportés
mb_output_handler --  Fonction de traitement des affichages
mb_parse_str --  Analyse les données HTTP GET/POST/COOKIE et assigne les variables globales
mb_preferred_mime_name -- Détecte l'encodage MIME
mb_regex_encoding --  Retourne le jeu de caractères courant pour les expressions rationnelles
mb_regex_set_options --  Lit et modifie les options des fonctions d'expression rationnelle à support de caractères multi-octets
mb_send_mail -- Envoie un mail encodé
mb_split -- Scinde une chaîne en tableau avec une expression rationnelle multi-octets
mb_strcut -- Coupe une partie de chaîne
mb_strimwidth -- Tronque une chaîne
mb_strlen -- Retourne la taille d'une chaîne
mb_strpos --  Repère la première occurrence d'un caractère dans une chaîne
mb_strrpos --  Repère la dernière occurrence d'un caractère dans une chaîne
mb_strtolower -- Met tous les caractères en minuscules
mb_strtoupper -- Met tous les caractères en majuscules
mb_strwidth -- Retourne la largeur d'une chaîne
mb_substitute_character -- Lit/modifie les caractères de substitution
mb_substr_count -- Compte le nombre d'occurrences d'une sous-chaîne
mb_substr -- Lit une sous-chaîne