<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_charset_lite - Serveur HTTP Apache Version 2.4</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p>
<p class="apache">Serveur HTTP Apache Version 2.4</p>
<img alt="" src="../images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.4</a> &gt; <a href="./">Modules</a></div>
<div id="page-content">
<div id="preamble"><h1>Module Apache mod_charset_lite</h1>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_charset_lite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_charset_lite.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/mod/mod_charset_lite.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Spécifie dans quel jeu de caractère doivent s'effectuer les
traductions ou les réencodages</td></tr>
<tr><th><a href="module-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">Identificateur de Module:</a></th><td>charset_lite_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">Fichier Source:</a></th><td>mod_charset_lite.c</td></tr></table>
<h3>Sommaire</h3>

    <p>Le module <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> 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 <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> pour spécifier que
    les corps des réponses doivent être traduits. Par exemple, si les
    fichiers sont stockés sous forme EBCDIC,
    <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> pourra les traduire en ISO-8859-1
    avant de les envoyer au client.</p>

    <p>Ce module fournit quelques procédés de configuration implémentés
    par Apache version russe, ainsi que son module
    <code>mod_charset</code> associé.</p>
</div>
<div id="quickview"><a href="https://www.apache.org/foundation/contributing.html" class="badge"><img src="https://www.apache.org/images/SupportApache-small.png" alt="Support Apache!" /></a><h3>Sujets</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#problems">Problèmes courants</a></li>
</ul><h3 class="directives">Directives</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#charsetdefault">CharsetDefault</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#charsetoptions">CharsetOptions</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#charsetsourceenc">CharsetSourceEnc</a></li>
</ul>
<h3>Traitement des bugs</h3><ul class="seealso"><li><a href="https://www.apache.org/dist/httpd/CHANGES_2.4">Journal des modifications de httpd</a></li><li><a href="https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__open__&amp;list_id=144532&amp;product=Apache%20httpd-2&amp;query_format=specific&amp;order=changeddate%20DESC%2Cpriority%2Cbug_severity&amp;component=mod_charset_lite">Problèmes connus</a></li><li><a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2&amp;component=mod_charset_lite">Signaler un bug</a></li></ul><h3>Voir aussi</h3>
<ul class="seealso">
<li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="problems" id="problems">Problèmes courants</a></h2>

    <h3>Noms de jeux de caractères non valides</h3>

      <p>Les noms des jeux de caractères passés en paramètres aux
      directives  <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> et
      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
      doivent être reconnus par le mécanisme de traduction utilisé par
      <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le système où
      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> 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 :</p>

      <div class="example"><p><code>
        iconv -f valeur-charsetsourceenc -t valeur-charsetdefault
      </code></p></div>
    

    <h3>Incompatibilité entre le jeu de caractères du
    contenu et les règles de traduction</h3>

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

      <ul>
      <li>Le mécanisme de traduction peut renvoyer un mauvais code de
      retour, et la connexion sera interrompue.</li>

      <li>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.</li>
      </ul>
    
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="charsetdefault" id="charsetdefault">Directive</a> <a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Jeu de caractère vers lequel la traduction doit
s'effectuer</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CharsetDefault <var>jeu de caractères</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_charset_lite</td></tr>
</table>
    <p>La directive <code class="directive">CharsetDefault</code> permet de
    spécifier le jeu de caractères vers lequel le contenu situé dans le
    conteneur associé devra être traduit.</p>

    <p>La valeur de l'argument <var>jeu de caractères</var> doit être
    un nom de jeu de caractères valide du point de vue du support des
    jeux de caractères dans <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>. En général, cela
    implique qu'elle doit être reconnue par iconv.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
    CharsetSourceEnc  UTF-16BE
    CharsetDefault    ISO-8859-1
&lt;/Directory&gt;</pre>
</div>

    <div class="note">
     Spécifier le même jeu de caractères pour les deux directives
     <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code>
     et <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
     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.
     </div>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="charsetoptions" id="charsetoptions">Directive</a> <a name="CharsetOptions" id="CharsetOptions">CharsetOptions</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Précise les détails de la traduction du jeu de
caractères</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CharsetOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CharsetOptions ImplicitAdd</code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_charset_lite</td></tr>
</table>
    <p>La directive <code class="directive">CharsetOptions</code> permet de
    préciser certains détails du comportement du module
    <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code>. <var>Option</var> accepte les
    valeurs suivantes :</p>

    <dl>
      <dt><code>ImplicitAdd | NoImplicitAdd</code></dt>

      <dd>Le mot-clé <code>ImplicitAdd</code> indique que
      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> 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 <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, l'option
      <code>NoImplicitAdd</code> doit être utilisée afin que
      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> n'ajoute pas son propre
      filtre.</dd>

      <dt><code>TranslateAllMimeTypes | NoTranslateAllMimeTypes</code></dt>
      <dd>Normalement, <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> n'effectuera
      une traduction qu'en présence d'un petit nombre de types MIME
      parmi tous les types possibles. Lorsque l'option
      <code>TranslateAllMimeTypes</code> est utilisée pour une section
      de configuration donnée, la traduction est effectuée sans se
      préoccuper du type MIME.</dd>

    </dl>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="charsetsourceenc" id="charsetsourceenc">Directive</a> <a name="CharsetSourceEnc" id="CharsetSourceEnc">CharsetSourceEnc</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Jeu de caractères source des fichiers</td></tr>
<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CharsetSourceEnc <var>jeu de caractères</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration globale, serveur virtuel, répertoire, .htaccess</td></tr>
<tr><th><a href="directive-dict.html#Override">Surcharges autorisées:</a></th><td>FileInfo</td></tr>
<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_charset_lite</td></tr>
</table>
    <p>La directive <code class="directive">CharsetSourceEnc</code> permet de
    spécifier un jeu de caractères source pour les fichiers situés dans
    le conteneur associé.</p>

    <p>La valeur de l'argument <var>jeu de caractères</var> doit être
    un nom de jeu de caractères valide du point de vue du support des
    jeux de caractères dans <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>. En général, cela
    implique qu'elle doit être reconnue par iconv.</p>

    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
    CharsetSourceEnc  UTF-16BE
    CharsetDefault    ISO-8859-1
&lt;/Directory&gt;</pre>
</div>

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

    <div class="note">
     Spécifier le même jeu de caractères pour les deux directives
     <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code>
     et <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
     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.
     </div>

</div>
</div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="../en/mod/mod_charset_lite.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/mod/mod_charset_lite.html" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ko/mod/mod_charset_lite.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Commentaires</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our <a href="https://httpd.apache.org/lists.html">mailing lists</a>.</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/mod/mod_charset_lite.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2022 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">Glossaire</a> | <a href="../sitemap.html">Plan du site</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>