| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 867 人关注过本帖
标题:[讨论]操作系统语言环境设置对Java应用缺省编码方式的影响
只看楼主 加入收藏
tml327
Rank: 1
等 级:新手上路
帖 子:510
专家分:0
注 册:2007-10-30
收藏
 问题点数:0 回复次数:0 
[讨论]操作系统语言环境设置对Java应用缺省编码方式的影响

了了解Java应用的编码处理的机制,首先要了解操作系统对JVM缺省编码方式的影响,因此我做了一个Env.java,用于打印显示不同系统下JVM的属性和系统支持的LOCALE。程序很简单:

/* * Copyright (c) 2002 Email: chedongATbigfoot.com/chedongATchedong.com * $Id: hello_unicode.html,v 1.6 2003/11/09 07:57:11 chedong Exp $ */import java.util.*;import java.text.*;/** * 目的: * 显示环境变量和JVM的缺省属性 * 输入:无 * 输出: * 1 支持的LOCALE * 2 JVM的缺省属性 */public class Env { /** * main entrance */ public static void main(String[] args) { System.out.println("Hello, it's: " + new Date()); //print available locales Locale list[] = DateFormat.getAvailableLocales(); System.out.println("======System available locales:======== "); for (int i = 0; i < list.length; i++) { System.out.println(list[i].toString() + "\t" + list[i].getDisplayName()); } //print JVM default properties System.out.println("======System property======== "); System.getProperties().list(System.out); }}最需要注意的是JVM的file.encoding属性,这个属性确定了JVM的缺省的编码/解码方式:从而影响应用中所有字节流==>字符流的解码方式 ,字符流==>字节流的编码方式。

LINUX下的LOCALE可以通过 LANG=zh_CN; LC_ALL=zh_CN.GBK; export LANG LC_ALL 设置。locale 命令可以显示系统当前的环境设置
Windows的LOCALE可以通过 控制面板==>区域设置 设置实现

GNU/Linux 2.4.x (J2SE1.3.1)
LANG=en_US LC_ALL=en_US GNU/Linux 2.4.x (J2SE1.3.1)
LANG=zh_CN LC_ALL=zh_CN.GBK Windows 2000(J2SE1.3.0)
区域设置:中国 中文 Windows 2000(J2SE1.3.0)
区域设置:英国 英文
Hello, it's: Tue Jul 30 11:05:44 CST 2002======System available locales:======== en Englishen_US English (United States)ar Arabicar_AE Arabic (United Arab Emirates)ar_BH Arabic (Bahrain)ar_DZ Arabic (Algeria)ar_EG Arabic (Egypt)ar_IQ Arabic (Iraq)ar_JO Arabic (Jordan)ar_KW Arabic (Kuwait)ar_LB Arabic (Lebanon)ar_LY Arabic (Libya)ar_MA Arabic (Morocco)ar_OM Arabic (Oman)ar_QA Arabic (Qatar)ar_SA Arabic (Saudi Arabia)ar_SD Arabic (Sudan)ar_SY Arabic (Syria)ar_TN Arabic (Tunisia)ar_YE Arabic (Yemen)be Byelorussianbe_BY Byelorussian (Belarus)bg Bulgarianbg_BG Bulgarian (Bulgaria)ca Catalanca_ES Catalan (Spain)ca_ES_EURO Catalan (Spain,Euro)cs Czechcs_CZ Czech (Czech Republic)da Danishda_DK Danish (Denmark)de Germande_AT German (Austria)de_AT_EURO German (Austria,Euro)de_CH German (Switzerland)de_DE German (Germany)de_DE_EURO German (Germany,Euro)de_LU German (Luxembourg)de_LU_EURO German (Luxembourg,Euro)el Greekel_GR Greek (Greece)en_AU English (Australia)en_CA English (Canada)en_GB English (United Kingdom)en_IE English (Ireland)en_IE_EURO English (Ireland,Euro)en_NZ English (New Zealand)en_ZA English (South Africa)es Spanishes_BO Spanish (Bolivia)es_AR Spanish (Argentina)es_CL Spanish (Chile)es_CO Spanish (Colombia)es_CR Spanish (Costa Rica)es_DO Spanish (Dominican Republic)es_EC Spanish (Ecuador)es_ES Spanish (Spain)es_ES_EURO Spanish (Spain,Euro)es_GT Spanish (Guatemala)es_HN Spanish (Honduras)es_MX Spanish (Mexico)es_NI Spanish (Nicaragua)et Estonianes_PA Spanish (Panama)es_PE Spanish (Peru)es_PR Spanish (Puerto Rico)es_PY Spanish (Paraguay)es_SV Spanish (El Salvador)es_UY Spanish (Uruguay)es_VE Spanish (Venezuela)et_EE Estonian (Estonia)fi Finnishfi_FI Finnish (Finland)fi_FI_EURO Finnish (Finland,Euro)fr Frenchfr_BE French (Belgium)fr_BE_EURO French (Belgium,Euro)fr_CA French (Canada)fr_CH French (Switzerland)fr_FR French (France)fr_FR_EURO French (France,Euro)fr_LU French (Luxembourg)fr_LU_EURO French (Luxembourg,Euro)hr Croatianhr_HR Croatian (Croatia)hu Hungarianhu_HU Hungarian (Hungary)is Icelandicis_IS Icelandic (Iceland)it Italianit_CH Italian (Switzerland)it_IT Italian (Italy)it_IT_EURO Italian (Italy,Euro)iw Hebrewiw_IL Hebrew (Israel)ja Japaneseja_JP Japanese (Japan)ko Koreanko_KR Korean (South Korea)lt Lithuanianlt_LT Lithuanian (Lithuania)lv Latvian (Lettish)lv_LV Latvian (Lettish) (Latvia)mk Macedonianmk_MK Macedonian (Macedonia)nl Dutchnl_BE Dutch (Belgium)nl_BE_EURO Dutch (Belgium,Euro)nl_NL Dutch (Netherlands)nl_NL_EURO Dutch (Netherlands,Euro)no Norwegianno_NO Norwegian (Norway)no_NO_NY Norwegian (Norway,Nynorsk)pl Polishpl_PL Polish (Poland)pt Portuguesept_BR Portuguese (Brazil)pt_PT Portuguese (Portugal)pt_PT_EURO Portuguese (Portugal,Euro)ro Romanianro_RO Romanian (Romania)ru Russianru_RU Russian (Russia)sh Serbo-Croatiansh_YU Serbo-Croatian (Yugoslavia)sk Slovaksk_SK Slovak (Slovakia)sl Sloveniansl_SI Slovenian (Slovenia)sq Albaniansq_AL Albanian (Albania)sr Serbiansr_YU Serbian (Yugoslavia)sv Swedishsv_SE Swedish (Sweden)th Thaith_TH Thai (Thailand)tr Turkishtr_TR Turkish (Turkey)uk Ukrainianuk_UA Ukrainian (Ukraine)zh Chinesezh_CN Chinese (China)zh_HK Chinese (Hong Kong)zh_TW Chinese (Taiwan)======System property======== -- listing properties --java.runtime.name=Java(TM) 2 Runtime Environment, Stand...sun.boot.library.path=/usr/java/jdk1.3.1_04/jre/lib/i386java.vm.version=1.3.1_04-b02java.vm.vendor=Sun Microsystems Inc.java.vendor.url=http://java.sun.com/path.separator=:java.vm.name=Java HotSpot(TM) Client VMfile.encoding.pkg=sun.iojava.vm.specification.name=Java Virtual Machine Specificationuser.dir=/home/chedong/src/char_testjava.runtime.version=1.3.1_04-b02java.awt.graphicsenv=sun.awt.X11GraphicsEnvironmentos.arch=i386java.io.tmpdir=/tmpline.separator=java.vm.specification.vendor=Sun Microsystems Inc.java.awt.fonts=os.name=Linuxjava.library.path=/usr/java/jdk1.3.1_04/jre/lib/i386:/u...java.specification.name=Java Platform API Specificationjava.class.version=47.0os.version=2.4.7-10user.home=/home/chedonguser.timezone=Asia/Shanghaijava.awt.printerjob=sun.awt.motif.PSPrinterJobfile.encoding=ISO-8859-1

java.specification.version=1.3
user.name=chedong
java.class.path=/home/chedong/classes
java.vm.specification.version=1.0
java.home=/usr/java/jdk1.3.1_04/jre
user.language=en
java.specification.vendor=Sun Microsystems Inc.
java.vm.info=mixed mode
java.version=1.3.1_04
java.ext.dirs=/usr/java/jdk1.3.1_04/jre/lib/ext
sun.boot.class.path=/usr/java/jdk1.3.1_04/jre/lib/rt.jar:...
java.vendor=Sun Microsystems Inc.
file.separator=/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
user.region=US
sun.cpu.isalist=

Hello, it's: Tue Jul 30 11:07:34 CST 2002======System available locales:========en 英文en_US 英文 (美国)ar 阿拉伯文ar_AE 阿拉伯文 (阿拉伯联合酋长国)ar_BH 阿拉伯文 (巴林)ar_DZ 阿拉伯文 (阿尔及利亚)ar_EG 阿拉伯文 (埃及)ar_IQ 阿拉伯文 (伊拉克)ar_JO 阿拉伯文 (约旦)ar_KW 阿拉伯文 (科威特)ar_LB 阿拉伯文 (黎巴嫩)ar_LY 阿拉伯文 (利比亚)ar_MA 阿拉伯文 (摩洛哥)ar_OM 阿拉伯文 (阿曼)ar_QA 阿拉伯文 (卡塔尔)ar_SA 阿拉伯文 (沙特阿拉伯)ar_SD 阿拉伯文 (苏丹)ar_SY 阿拉伯文 (叙利亚)ar_TN 阿拉伯文 (突尼斯)ar_YE 阿拉伯文 (也门)be 白俄罗斯文be_BY 白俄罗斯文 (白俄罗斯)bg 保加利亚文bg_BG 保加利亚文 (保加利亚)ca 加泰罗尼亚文ca_ES 加泰罗尼亚文 (西班牙)ca_ES_EURO 加泰罗尼亚文 (西班牙,Euro)cs 捷克文cs_CZ 捷克文 (捷克共和国)da 丹麦文da_DK 丹麦文 (丹麦)de 德文de_AT 德文 (奥地利)de_AT_EURO 德文 (奥地利,Euro)de_CH 德文 (瑞士)de_DE 德文 (德国)de_DE_EURO 德文 (德国,Euro)de_LU 德文 (卢森堡)de_LU_EURO 德文 (卢森堡,Euro)el 希腊文el_GR 希腊文 (希腊)en_AU 英文 (澳大利亚)en_CA 英文 (加拿大)en_GB 英文 (英国)en_IE 英文 (爱尔兰)en_IE_EURO 英文 (爱尔兰,Euro)en_NZ 英文 (新西兰)en_ZA 英文 (南非)es 西班牙文es_BO 西班牙文 (玻利维亚)es_AR 西班牙文 (阿根廷)es_CL 西班牙文 (智利)es_CO 西班牙文 (哥伦比亚)es_CR 西班牙文 (哥斯达黎加)es_DO 西班牙文 (多米尼加共和国)es_EC 西班牙文 (厄瓜多尔)es_ES 西班牙文 (西班牙)es_ES_EURO 西班牙文 (西班牙,Euro)es_GT 西班牙文 (危地马拉)es_HN 西班牙文 (洪都拉斯)es_MX 西班牙文 (墨西哥)es_NI 西班牙文 (尼加拉瓜)et 爱沙尼亚文es_PA 西班牙文 (巴拿马)es_PE 西班牙文 (秘鲁)es_PR 西班牙文 (波多黎哥)es_PY 西班牙文 (巴拉圭)es_SV 西班牙文 (萨尔瓦多)es_UY 西班牙文 (乌拉圭)es_VE 西班牙文 (委内瑞拉)et_EE 爱沙尼亚文 (爱沙尼亚)fi 芬兰文fi_FI 芬兰文 (芬兰)fi_FI_EURO 芬兰文 (芬兰,Euro)fr 法文fr_BE 法文 (比利时)fr_BE_EURO 法文 (比利时,Euro)fr_CA 法文 (加拿大)fr_CH 法文 (瑞士)fr_FR 法文 (法国)fr_FR_EURO 法文 (法国,Euro)fr_LU 法文 (卢森堡)fr_LU_EURO 法文 (卢森堡,Euro)hr 克罗地亚文hr_HR 克罗地亚文 (克罗地亚)hu 匈牙利文hu_HU 匈牙利文 (匈牙利)is 冰岛文is_IS 冰岛文 (冰岛)it 意大利文it_CH 意大利文 (瑞士)it_IT 意大利文 (意大利)it_IT_EURO 意大利文 (意大利,Euro)iw 希伯来文iw_IL 希伯来文 (以色列)ja 日文ja_JP 日文 (日本)ko 朝鲜文ko_KR 朝鲜文 (南朝鲜)lt 立陶宛文lt_LT 立陶宛文 (立陶宛)lv 拉托维亚文(列托)lv_LV 拉托维亚文(列托) (拉脱维亚)mk 马其顿文mk_MK 马其顿文 (马其顿王国)nl 荷兰文nl_BE 荷兰文 (比利时)nl_BE_EURO 荷兰文 (比利时,Euro)nl_NL 荷兰文 (荷兰)nl_NL_EURO 荷兰文 (荷兰,Euro)no 挪威文no_NO 挪威文 (挪威)no_NO_NY 挪威文 (挪威,Nynorsk)pl 波兰文pl_PL 波兰文 (波兰)pt 葡萄牙文pt_BR 葡萄牙文 (巴西)pt_PT 葡萄牙文 (葡萄牙)pt_PT_EURO 葡萄牙文 (葡萄牙,Euro)ro 罗马尼亚文ro_RO 罗马尼亚文 (罗马尼亚)ru 俄文ru_RU 俄文 (俄罗斯)sh 塞波尼斯-克罗地亚文sh_YU 塞波尼斯-克罗地亚文 (南斯拉夫)sk 斯洛伐克文sk_SK 斯洛伐克文 (斯洛伐克)sl 斯洛文尼亚文sl_SI 斯洛文尼亚文 (斯洛文尼亚)sq 阿尔巴尼亚文sq_AL 阿尔巴尼亚文 (阿尔巴尼亚)sr 塞尔维亚文sr_YU 塞尔维亚文 (南斯拉夫)sv 瑞典文sv_SE 瑞典文 (瑞典)th 泰文th_TH 泰文 (泰国)tr 土耳其文tr_TR 土耳其文 (土耳其)uk 乌克兰文uk_UA 乌克兰文 (乌克兰)zh 中文zh_CN 中文 (中国)zh_HK 中文 (香港)zh_TW 中文 (台湾)======System property========-- listing properties --java.runtime.name=Java(TM) 2 Runtime Environment, Stand...sun.boot.library.path=/usr/java/jdk1.3.1_04/jre/lib/i386java.vm.version=1.3.1_04-b02java.vm.vendor=Sun Microsystems Inc.java.vendor.url=http://java.sun.com/path.separator=:java.vm.name=Java HotSpot(TM) Client VMfile.encoding.pkg=sun.iojava.vm.specification.name=Java Virtual Machine Specificationuser.dir=/home/chedong/src/char_testjava.runtime.version=1.3.1_04-b02java.awt.graphicsenv=sun.awt.X11GraphicsEnvironmentos.arch=i386java.io.tmpdir=/tmpline.separator=java.vm.specification.vendor=Sun Microsystems Inc.java.awt.fonts=os.name=Linuxjava.library.path=/usr/java/jdk1.3.1_04/jre/lib/i386:/u...java.specification.name=Java Platform API Specificationjava.class.version=47.0os.version=2.4.7-10user.home=/home/chedonguser.timezone=Asia/Shanghaijava.awt.printerjob=sun.awt.motif.PSPrinterJobfile.encoding=GBK

java.specification.version=1.3
user.name=chedong
java.class.path=/home/chedong/classes
java.vm.specification.version=1.0
java.home=/usr/java/jdk1.3.1_04/jre
user.language=zh
java.specification.vendor=Sun Microsystems Inc.
java.vm.info=mixed mode
java.version=1.3.1_04
java.ext.dirs=/usr/java/jdk1.3.1_04/jre/lib/ext
sun.boot.class.path=/usr/java/jdk1.3.1_04/jre/lib/rt.jar:...
java.vendor=Sun Microsystems Inc.
file.separator=/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
user.region=CN
sun.cpu.isalist=

搜索更多相关主题的帖子: 操作系统 Java 语言 环境 缺省 
2007-11-11 13:44
快速回复:[讨论]操作系统语言环境设置对Java应用缺省编码方式的影响
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015464 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved