ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          這個話題來自: 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文件的讀取
          4. javax.print.DocFlavor 影響打印的編碼

          故,影響還是很大的哦, 可以說是Java中編碼的一個關鍵鑰匙!

          posted on 2011-01-31 14:28 ivaneeo 閱讀(4045) 評論(0)  編輯  收藏 所屬分類: java魔力
          主站蜘蛛池模板: 甘洛县| 台东县| 北碚区| 温宿县| 门头沟区| 清水县| 安徽省| 萍乡市| 宣恩县| 黔东| 隆林| 宣武区| 长海县| 南平市| 柘荣县| 开封市| 海林市| 故城县| 吉隆县| 清远市| 磴口县| 嘉峪关市| 三原县| 东乡县| 海宁市| 前郭尔| 揭阳市| 赤峰市| 三门峡市| 荃湾区| 长丰县| 武宣县| 隆化县| 东明县| 庄浪县| 手机| 安新县| 滦平县| 锦州市| 永吉县| 平阳县|