-
Runtime et Charset
Bonjour ,
Je travaille pour l'instant sur les jeux de caractères.
J'ai lu
- que le jeu de caractères par défaut du Runtime (UTF-16 si je ne m'abuse) se chargeait au démarrage de la JVM
- que l'on pouvait le modifier en ligne de commnade par -Dfile.encoding=
Mais est-il possible de le modifier par programmation ??
En principe, je ne crois pas ...
Merci de vos réponses
-
Le jeu de caractères par défaut est "dépendant de la plateforme"
il n'y a pas moyen de changer ce défaut après démarrage, car beaucoup de classes système comme les inputstreamreader / writer auront déjà caché la valeur avant même d'entrer dans ton main.
Tu peux changer le file.encoding par programmation, ce sera refleté par Charset.getDefautlCharset(), mais vu le caching que j'ai mentionné, ca va juste impliquer qu'une partie du code travaillera avec la nouvelle valeur et une partie avec l'ancienne, ce qui est une sacré source de bugs.
-
Bonjour tchize
Je te remercie de ta réponse mais j'ai lu aussi ceci
"Changer la locale est la façon que Sun recommande pour changer l'encoding par défaut. depuis la jvm 1.4 de sun, vous pouvez spécifiez la locale avec les paramètres -Duser.language -Duser.country et -Duser.variant mais cela rend votre code dépendant de la version et du vendeur de la JVM"
Source :
http://davidmasclet.gisgraphy.com/po...ger-(2e-partie)
Bien sûr cet article date un peu mais qu'en dis-tu ?
-
sun n'existe plus depuis longtemps. Si t'as envie de t'emmerder avec les locales, vas y, mais quand tu veux que ton programme utilise UTF-8 par défaut, t'as pas nécessairement envie, en plus, d'imposer une langue à l'utilisateur.
De toutes façons, il vaux mieux ne pas toucher à l'encodage par défaut et d'utiliser systématiquement un encodage explicite pour tout ce que tu fais. C'est plus propre.
-
Et quand on n'existe plus ... on n'existe plus !!!
Bon week-end !!!