Serveur Apache HTTP Version 2.4

Apache > Serveur HTTP > Documentation > Version 2.4 > Modules

# Module Apache mod_charset_lite

Description: | Spécifie dans quel jeu de caractère doivent s'effectuer les traductions ou les réencodages
Statut: | Extension
Identificateur de Module: | charset_lite_module
Fichier Source: | mod_charset_lite.c

### Sommaire

Le module `mod_charset_lite` permet au serveur de modifier le jeu de caractères des réponses avant de les envoyer aux clients. Dans un environnement EBCDIC, Apache traduit toujours les contenus au protocole HTTP (par exemples les en-têtes de réponses) de la page de code de la locale du processus Apache vers ISO-8859-1, mais pas le corps des réponses. Dans tous les environnements, on peut utiliser `mod_charset_lite` pour spécifier que les corps des réponses doivent être traduits. Par exemple, si les fichiers sont stockés sous forme EBCDIC, `mod_charset_lite` pourra les traduire en ISO-8859-1 avant de les envoyer au client.

Ce module fournit quelques procédés de configuration implémentés par Apache version russe, ainsi que son module `mod_charset` associé.

### Sujets

- Problèmes courants

### Directives

### Traitement des bugs

- Journal des modifications de httpd
- Problèmes connus
- Signaler un bug

## Problèmes courants

### Noms de jeux de caractères non valides

Les noms des jeux de caractères passés en paramètres aux directives `CharsetSourceEnc` et `CharsetDefault` doivent être reconnus par le mécanisme de traduction utilisé par APR sur le système où `mod_charset_lite` est utilisé. Ces noms de jeux de caractères ne sont pas standardisés, et sont en général différents des valeurs qui leur correspondent dans les en-têtes HTTP. Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc tester facilement vos noms de jeux de caractères en utilisant le programme iconv(1), de la manière suivante :

`iconv -f valeur-charsetsourceenc -t valeur-charsetdefault`

### Incompatibilité entre le jeu de caractères du contenu et les règles de traduction

Si les règles de traduction ne peuvent s'appliquer au contenu, la traduction peut échouer avec des conséquences diverses, comme :

- Le mécanisme de traduction peut renvoyer un mauvais code de retour, et la connexion sera interrompue.
- Le mécanisme de traduction peut insérer silencieusement des caractères spéciaux (par exemple des points d'interrogation) dans le tampon de sortie lorsqu'il n'est pas en mesure de traduire le tampon d'entrée.

## Directive CharsetDefault

Description: | Jeu de caractère vers lequel la traduction doit s'effectuer
Syntaxe: | `CharsetDefault jeu de caractères`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Extension
Module: | mod_charset_lite

La directive `CharsetDefault` permet de spécifier le jeu de caractères vers lequel le contenu situé dans le conteneur associé devra être traduit.

La valeur de l'argument jeu de caractères doit être un nom de jeu de caractères valide du point de vue du support des jeux de caractères dans APR. En général, cela implique qu'elle doit être reconnue par iconv.

### Exemple

    <Directory "/export/home/trawick/apacheinst/htdocs/convert">
        CharsetSourceEnc  UTF-16BE
        CharsetDefault    ISO-8859-1
    </Directory>

Spécifier le même jeu de caractères pour les deux directives `CharsetSourceEnc` et `CharsetDefault` désactive la traduction. Le jeu de caractères ne doit pas forcément correspondre au jeu de caractères de la réponse, mais il doit être valide du point de vue du système.

## Directive CharsetOptions

Description: | Précise les détails de la traduction du jeu de caractères
Syntaxe: | `CharsetOptions option [option] ...`
Défaut: | `CharsetOptions ImplicitAdd`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Extension
Module: | mod_charset_lite

La directive `CharsetOptions` permet de préciser certains détails du comportement du module `mod_charset_lite`. Option accepte les valeurs suivantes :

`ImplicitAdd | NoImplicitAdd`
  Le mot-clé `ImplicitAdd` indique que `mod_charset_lite` doit insérer son filtre de manière implicite lorsque la configuration indique que le jeu de caractère du contenu doit être traduit. Si la chaîne de filtrage est configurée de manière explicite via la directive `AddOutputFilter`, l'option `NoImplicitAdd` doit être utilisée afin que `mod_charset_lite` n'ajoute pas son propre filtre.
`TranslateAllMimeTypes | NoTranslateAllMimeTypes`
  Normalement, `mod_charset_lite` n'effectuera une traduction qu'en présence d'un petit nombre de types MIME parmi tous les types possibles. Lorsque l'option `TranslateAllMimeTypes` est utilisée pour une section de configuration donnée, la traduction est effectuée sans se préoccuper du type MIME.

## Directive CharsetSourceEnc

Description: | Jeu de caractères source des fichiers
Syntaxe: | `CharsetSourceEnc jeu de caractères`
Contexte: | configuration du serveur, serveur virtuel, répertoire, .htaccess
AllowOverride: | FileInfo
Statut: | Extension
Module: | mod_charset_lite

La directive `CharsetSourceEnc` permet de spécifier un jeu de caractères source pour les fichiers situés dans le conteneur associé.

La valeur de l'argument jeu de caractères doit être un nom de jeu de caractères valide du point de vue du support des jeux de caractères dans APR. En général, cela implique qu'elle doit être reconnue par iconv.

### Exemple

    <Directory "/export/home/trawick/apacheinst/htdocs/convert">
        CharsetSourceEnc  UTF-16BE
        CharsetDefault    ISO-8859-1
    </Directory>

Les noms de jeux de caractères de cet exemple sont reconnus par le mécanisme de traduction d'iconv sous Solaris 8.

Spécifier le même jeu de caractères pour les deux directives `CharsetSourceEnc` et `CharsetDefault` désactive la traduction. Le jeu de caractères ne doit pas forcément correspondre au jeu de caractères de la réponse, mais il doit être valide du point de vue du système.