Manuel PHP
Précédent |  | Suivant

# XCIV. 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 de chaînes qui vous permet de travailler avec les encodages multi-octets en PHP. En plus de cela, `mbstring` gère la traduction entre les jeux de caractères disponibles. `mbstring` est également connu pour gérer l'Unicode, comme UTF-8 et UCS-2 ainsi que de nombreux autres jeux mono-octets.

## 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 caractères 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 vous connectez à une base de données avec PHP, il est recommandé d'utiliser le même jeu de caractères pour la base de données et pour le `jeu interne` pour améliorer le confort d'utilisation mais aussi 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` : Active les fonctions `mbstring`. Cette option est nécessaire pour utiliser les fonctions `mbstring`.

  libmbfl est nécessaire pour `mbstring`. libmbfl est inclus avec `mbstring`. Si libmbfl est déjà installé sur le système, `--with-libmbfl[=DIR]` peut être spécifié pour utiliser la bibliothèque istallée.

  À partir de PHP 4.3.0, l'extension `mbstring` fournit le support pour le chinois simplifié, le chinois traditionnel, le coréen et le russe en plus du japonais.

  Pour PHP 4.3.3 ou inférieur, pour activer cette fonctionnalité, vous devez fournir une des options suivantes dans le paramètres `LANG` de `--with-mbstring=LANG` : `--with-mbstring=cn` pour le support du chinois simplifié, `--with-mbstring=tw` pour le support du chinois traditionnel, `--with-mbstring=kr` pour le support du coréen, `--with-mbstring=ru` pour le support du russe et `--enable-mbstring=ja` pour le support du japonais (par défaut). Pour activer le support de tous ces encodages, utilisez `--enable-mbstring=all`.

  > Note : Depuis PHP 4.3.4, tous les encodages supportés par libmbfl sont activables avec l'option `--enable-mbstring`.

- `--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 venant 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 vaut`Off`).

- `--disable-mbregex` : Désactive 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

Nom | Par défaut | Modifiable | Historique
--- | --- | --- | ---
mbstring.language | "neutral" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0
mbstring.detect_order | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.http_input | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.http_output | "pass" | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.internal_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.script_encoding | NULL | PHP_INI_ALL | Disponible depuis PHP 4.3.0
mbstring.substitute_character | NULL | PHP_INI_ALL | Disponible depuis PHP 4.0.6
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM en PHP <= 4.2.3. Disponible depuis PHP 4.2.0
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Disponible depuis PHP 4.3.0
mbstring.strict_detection | "0" | PHP_INI_ALL | Disponible depuis PHP 5.1.2.

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G.

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.

`mbstring.strict_detection` booléen

  Active la détection stricte de l'encodage.

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. 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é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é par "ASCII,JIS,UTF-8,EUC-JP,SJIS"
    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 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

    ;; 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 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

Toutes les entrées du `php.ini` qui acceptent un nom d'encodage peuvent également utiliser les valeurs "`auto`" et "`pass`". Les fonctions `mbstring`, qui acceptent des noms de jeux de caractères, peuvent également utiliser 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

Vous pourriez trouver difficile de faire fonctionner une application PHP existante dans un environnement multi-octets. Ceci est dû au fait que la plupart des applications PHP sont écrites avec des fonctions de chaînes de caractères standards comme la fonction substr(), qui est connue pour ne pas gérer proprement les chaînes multi-octets.

Mbstring supporte aussi la surcharge de fonctions, pour permettre le support des chaînes multi-octets sans modifier les scripts PHP. En utilisant ce système de surcharge de fonctions, certaines 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.

Pour utiliser la surcharge de fonctions, définissez `mbstring.func_overload`, dans le `php.ini`, à une valeur positive qui représente une combinaison de masques d'octets spécifiant les catégories de fonctions à surcharger. Il doit être définit à 1 pour surcharger la fonction mail(), 2 pour les fonction de chaînes, 4 pour les fonctions d'expression rationnelles. Par exemple, avec la valeur 7, toutes les fonctions précédentes seront surchargées. Voici la liste complète des fonctions surchargées, avec leur fonction de remplacement.

Tableau 2. Fonctions de remplacement

Valeur de mbstring.func_overload | Fonction originale | Fonction de remplacement
--- | --- | ---
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

> 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 suffisamment stables dans un environnement de production et peuvent conduire à un résultat incohérent.

# Cas des caractères japonais

Les caractères japonais ne peuvent être représentés qu'avec des encodages multi-octets et les standards d'encodage multiple sont utilisés suivant la plateforme et le texte de référence. Pour facilité les choses, ces standards d'encodages diffèrent légèrement les uns des autres. Pour développer des applications Web en environnement japonais, le développeur devra garder à l'esprit ces complexités afin de s'assurer que l'encodage de caractères correct est utilisé.

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

- Un caractère japonais multi-octets occupe généralement deux octets, à comparer avec les caractères simple-octet traditionnellement utilisés. Ces caractères sont appelés "zen-kaku", ce qui signifie "grande largeur". Les plus petits sont appelés "han-kaku", ce qui signifie "demi-largeur".

- Certains encodages de caractères utilisent des séquences "shift" (escape) définies dans la référence ISO-2022 pour basculer vers la carte d'encodage du code spécifique (`00h` to `7fh`).

- ISO-2022-JP doit être utilisé pour les protocoles SMTP/NNTP, et les en-têtes ainsi que les entités devraient être réencodés en accord avec la RFC correspondante. Bien que cela ne soit pas requis, ça 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 et ne peuvent être traités totalement dans cette documentation. Reportez-vous aux URL suivantes pour d'autres ressources complémentaires :

- Unicode/UTF/UCS/etc

  http://www.unicode.org/

- Japonais/coréen/Chinois

  http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

# 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 reconnaître 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 reconnaître 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 reconnaître 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 reconnaître 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 little endian.

Nom dans le registre IANA: UTF-16LE

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 électronique 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:

Précédent | Sommaire | Suivant
msql | Niveau supérieur | mb_check_encoding