wrapper.jvm.encoding

Compatibilité :3.5.35
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété est utilisée pour définir l'encodage par défaut de la JVM lorsqu'il doit différer de l'encodage utilisé par le Wrapper, ou pour spécifier un encodage autre que UTF-8 lors de l'utilisation de Java 18 et versions ultérieures. La valeur spécifiée avec wrapper.jvm.encoding est fournie à la JVM via la propriété système file.encoding sur la ligne de commande.

Les valeurs valides incluent :

  • UTF-8 : Il s'agit de la valeur recommandée lors de l'utilisation de Java 18 et versions ultérieures. Elle fonctionne également avec les JVM antérieures.

  • COMPAT (Depuis la ver. 3.7.0) : Ce jeton est résolu comme suit :
    - Sous Java 18 et versions ultérieures, COMPAT est transmis tel quel à la JVM, ce qui amène Java à déterminer l'encodage par défaut en mode compatibilité, comme c'était le cas sous Java 17.
    - Sous Java 17 et versions antérieures, COMPAT est interprété par le Wrapper lui-même et traduit en page de codes ANSI sous Windows, ou en l'encodage basé sur la locale au moment du démarrage du Wrapper sous Unix.

  • WRAPPER * (Depuis la ver. 3.7.0) : Ce jeton est utilisé pour spécifier le même encodage que le processus Wrapper (c'est-à-dire la valeur de wrapper.lang.<platform>.encoding convertie automatiquement dans la notation Java correspondante).
    Notez que cela a été le comportement par défaut pour les versions du Wrapper antérieures à 3.7.0, quelle que soit la version de Java, et que cela reste le comportement par défaut pour Java 17 et versions antérieures.

  • <canonical_name> * : Une valeur file.encoding valide prise en charge par la JVM actuelle (par exemple, ISO-8859-1, windows-1252, etc.). Par exemple, Oracle Java 17 prend en charge les encodages suivants.
    Notez que sous Java 18 et versions ultérieures, les seules valeurs officiellement prises en charge pour file.encoding sont 'UTF-8' et 'COMPAT'.

  • DEFAULT : Il s'agit de la valeur par défaut.
    - Sous Java 18 et versions ultérieures, le comportement par défaut consiste à ne pas transmettre l'encodage à la JVM (c'est-à-dire à la laisser utiliser UTF-8).
    - Sous Java 17 et versions antérieures, le comportement par défaut consiste à résoudre l'encodage de la JVM comme décrit pour la valeur WRAPPER.

* Si l'encodage spécifié (ou l'encodage résolu lors de l'utilisation de WRAPPER) n'est pas pris en charge par la JVM actuelle, le Wrapper consignera un message d'erreur et s'arrêtera. Cependant, cette restriction peut être levée en définissant wrapper.jvm.encoding.allow_unsupported sur TRUE.

Exemple : (définir l'encodage par défaut de la JVM en mode 'COMPAT')
wrapper.jvm.encoding=COMPAT

NOTE

La définition de wrapper.jvm.encoding n'est prise en charge que lorsque la JVM permet de spécifier un encodage distinct pour la sortie standard. Cela nécessite soit la prise en charge des propriétés système stdout.encoding et stderr.encoding (disponibles sous Java 18 et versions ultérieures), soit des propriétés sun.stdout.encoding et sun.stderr.encoding (disponibles dans les implémentations Oracle et OpenJDK à partir de Java 8). Le Wrapper vérifie toujours cette prise en charge, mais si wrapper.jvm.encoding est défini sur une valeur autre que DEFAULT, il ne lancera l'application que si les conditions nécessaires sont remplies.

AVERTISSEMENT

L'utilisation de cette propriété (toute valeur autre que 'DEFAULT') exige qu'il n'y ait aucune référence à 'file.encoding', 'stdout.encoding', 'stderr.encoding', 'sun.stdout.encoding' ou 'sun.stderr.encoding' dans les arguments passés à la JVM, sinon le Wrapper s'arrêtera.

Cette propriété n'est pas rechargée lorsque la JVM redémarre et que wrapper.restart.reload_configuration est défini sur TRUE. Cependant, si l'une des propriétés système ci-dessus a été ajoutée dans les arguments de la JVM alors que cette propriété est définie, le Wrapper s'arrêtera.

wrapper.jvm.encoding.allow_unsupported

Compatibilité :3.7.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community (non prise en charge)
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété permet au Wrapper d'ignorer la validation de la valeur de wrapper.jvm.encoding par rapport aux encodages pris en charge par la version actuelle de Java. Cela peut être utile, notamment lors de l'utilisation de Java 18 ou versions ultérieures, où seuls 'UTF-8' et 'COMPAT' sont officiellement pris en charge par la JVM, mais de nombreux autres encodages - bien qu'ils ne soient plus garantis - sont encore documentés comme « susceptibles de continuer à fonctionner ».

La valeur par défaut est FALSE.

Exemple : (autoriser le passage de 'EUC-JP' à la JVM même s'il n'est pas officiellement pris en charge par Java 18+)
wrapper.lang=en_US
wrapper.lang.unix.encoding=UTF-8

# This will add -Dfile.encoding=EUC-JP to the command line, which is not officially supported by Java 18+.
wrapper.jvm.encoding=EUC-JP

# Without this property, the Wrapper would stop.
wrapper.jvm.encoding.allow_unsupported=TRUE