ivaneeo's blog

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

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

          這個(gè)話題來自: Nutz的issue 361

          在考慮這個(gè)issue時(shí), 我一直傾向于使用系統(tǒng)變量file.encoding來改變JVM的默認(rèn)編碼.

          今天,我想到, 這個(gè)系統(tǒng)變量,對(duì)JVM的影響到底有多大呢?
          我使用最簡(jiǎn)單的方法看看這個(gè)變量的影響–在JDK 1.6.0_20的src.zip文件中,查找包含file.encoding字眼的文件.
          共找到4個(gè), 分別是:
          先上重頭戲 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的靜態(tài)構(gòu)造方法,影響到的方法 java.net.URLEncoder.encode(String)

          View Code JAVA

          com.sun.org.apache.xml.internal.serializer.Encoding的getMimeEncoding方法(209行起)

          View Code JAVA

          最后一個(gè)javax.print.DocFlavor類的靜態(tài)構(gòu)造方法:

          View Code JAVA

          可以看到,系統(tǒng)變量file.encoding影響到
          1. Charset.defaultCharset() Java環(huán)境中最關(guān)鍵的編碼設(shè)置
          2. URLEncoder.encode(String) Web環(huán)境中最常遇到的編碼使用
          3. com.sun.org.apache.xml.internal.serializer.Encoding 影響對(duì)無編碼設(shè)置的xml文件的讀取
          4. javax.print.DocFlavor 影響打印的編碼

          故,影響還是很大的哦, 可以說是Java中編碼的一個(gè)關(guān)鍵鑰匙!

          posted on 2011-01-31 14:28 ivaneeo 閱讀(4041) 評(píng)論(0)  編輯  收藏 所屬分類: java魔力
          主站蜘蛛池模板: 山东省| 鹤峰县| 互助| 莱州市| 会理县| 安吉县| 岑巩县| 嵩明县| 南昌市| 巴林左旗| 河南省| 鄢陵县| 东光县| 海晏县| 铜山县| 桃源县| 昌江| 泗阳县| 长葛市| 璧山县| 巴楚县| 乌拉特后旗| 临海市| 尉氏县| 名山县| 满城县| 桓台县| 厦门市| 金门县| 邹平县| 新安县| 许昌市| 嘉荫县| 合肥市| 双鸭山市| 阿克| 阿拉尔市| 康定县| 泗水县| 库伦旗| 普兰县|