システム変数file.EncodingはJavaの実行にどのくらい影響しますか?

2231 ワード

システム変数file.EncodingはJavaの実行にどのくらい影響しますか?
この話題は、Nutzのissue 361がこのissueを考えるとき、私はずっとシステム変数fileを使用する傾向にある.EncodingはJVMのデフォルト符号化を変更する.今日、このシステム変数が、JVMに与える影響はどれほど大きいのかと思います.最も簡単な方法でこの変数の影響を見てみます.JDK 1.6です.0_20のsrc.zipファイルで、fileを含むものを検索します.encodingワードのファイル全部で4つ見つかりました.それぞれ、まずメインイベントjavaに行きます.nio.Charsetクラス:
View Code JAVA
    public static Charset defaultCharset() {
            if (defaultCharset == null) {
            synchronized (Charset.class) {
            java.security.PrivilegedAction pa =
            new GetPropertyAction("file.encoding");
            String csn = (String)AccessController.doPrivileged(pa);
            Charset cs = lookup(csn);
            if (cs != null)
            defaultCharset = cs;
            else
            defaultCharset = forName("UTF-8");
            }
            }
            return defaultCharset;
            }

java.net.URLEncoderの静的構造方法、影響する方法java.net.URLEncoder.encode(String)
View Code JAVA
com.sun.org.apache.xml.internal.serializer.EncodingのgetMimeEncodingメソッド(209行から)
View Code JAVA
最後のjavax.print.DocFlavorクラスの静的構造方法:
View Code JAVA
システム変数file.encodingは1に影響する.Charset.defaultCharset()Java環境で最も重要な符号化設定2.URLEncoder.Encode(String)Web環境で最もよく見られる符号化使用3.com.sun.org.apache.xml.internal.serializer.Encodingは、符号化設定のないxmlファイルの読み出しに影響する.javax.print.DocFlavorは印刷の符号化に影響するので、影響はやはり大きいですよ.Javaで符号化されたキーと言えるでしょう.