十二 国际化和中文编码问题
国际化编码规则

国际化编码规则介绍国际化编码规则是指在跨国交流中统一使用的字符编码规则。
随着全球化进程的加速,不同国家和地区的人们需要进行更加频繁的交流合作,因此使用统一的国际化编码规则变得尤为重要。
本文将从国际化编码规则的背景、作用、常见规则和应用等方面进行全面详细地探讨。
背景在信息时代,人们越来越离不开数字设备和网络,而这些设备和网络都是以二进制编码进行信息传输的。
但是不同国家和地区有不同的字符集和字符编码方式,导致在信息交流中出现了很多问题。
为了解决这些问题,国际化编码规则应运而生。
作用国际化编码规则的主要作用是实现全球范围内的字符编码统一,确保不同地区的人们能够顺畅地进行信息交流。
具体来说,国际化编码规则有以下几个方面的作用:字符兼容性不同国家和地区使用的字符集有所不同,国际化编码规则可以实现字符的兼容性,使得不同字符集之间的转换更加方便。
编码统一国际化编码规则统一了跨国交流中所使用的字符编码,这样就能够避免因为编码不统一而导致的乱码问题。
文化传播国际化编码规则的实施不仅仅是技术问题,更涉及到不同国家和地区的文化传播。
通过统一的字符编码规则,可以更好地传播和交流不同地区的文化。
常见规则国际化编码规则有很多种,下面列举几种常见的规则:UTF-8UTF-8是一种变长的字符编码方式,它能够兼容ASCII码,可以表示世界上几乎所有的字符。
UTF-8使用1到4个字节来表示一个字符,能够有效地节省存储空间。
UTF-16UTF-16也是一种变长的字符编码方式,它使用2或4个字节来表示一个字符。
UTF-16最大的特点是使用两个字节来表示常见的字符,而使用四个字节来表示罕见的字符,这样使得对于常见字符的存储和处理更加高效。
GBKGBK是中国国家标准的字符集和编码方式,它是在GB2312的基础上进行了扩展。
GBK能够表示简体中文和繁体中文等字符,是一种常用的字符编码规则。
ISO-8859-1ISO-8859-1是国际标准化组织制定的字符编码规则,它使用一个字节来表示一个字符。
中文化和国际化问题权威解析之一 字符编码发展历程

中文化和国际化问题权威解析之一字符编码发展历程前几天看文初的《精武门之Web安全研讨会首日感受》,说到利用字符集攻击时提到以前宝宝写的一篇有关国际化的文章,趁机再次拜读了宝宝的这篇大作,不得不感慨宝宝的写作功底,无敌!这么好的文章不分享出来实在是太可惜了,在此将宝宝的大作转帖于此;作者序在我开发Java程序的几年中,遇到得最多,也是别人向我提问最多的问题,就是各种各样看似稀奇古怪的中文乱码问题了。
网上也有许多解释和解决Java中文问题的文章,但水平参差不齐,有一些文章甚至是错误的。
此外,我们公司自己的Java程序从一开始就采用了错误的方式处理中文问题,虽能解一时之急,却引出了越来越多的深远的问题。
每当我听到有的同事还在讨论如何特殊处理双字节的中文GB码,就感慨他们思路的狭隘。
试问,今天我们可以用特殊的方式处理我们所熟悉的中文编码,可是今后我们怎样才能应付日文版、韩文版、或世界其它国家语言的产品开发呢?在我看来,与其说这些问题是"中文化问题",不如说是"国际化问题"。
所谓的"汉化"这种说法已经随时代远去了。
想想看,这个词带有明显的小农经济的色彩:自家汉化自家用,哪管世界变化多。
经过汉化的软件,常常意味着:版本落后、不兼容、不稳定。
为什么会这样呢?根本原因是,从软件的设计阶段,就没有考虑国际用户的需要,没有采用国际通用的标准。
事后要弥补自然难上加难。
所以让我们把眼光放开,想一想"国际化"。
当然国际化的目的还是生产出"汉化"的软件,但我们可以用同样的方法"韩化"、"日化"、"阿拉伯化",统称为"本地化"--这就是"国际化"的目的。
国际化和本地化有两个很体面的英文缩写:I18n(Internationalization)和L10n(Localization)。
J2ee应用中文乱码问题解决方案

<%@ page import=".URLEncoder"%>
<a href="modifyGroupAction.do?groupId=<%=URLEncoder.encode(g.getId(), "UTF-8")%>"> 显示为 <a href="modifyGroupAction.do?groupId=%E5%B7%A5%E7%A8%8B%E9%83%A8"> 但若凑巧整个参数在提交过程中参数长短刚好不会被抛弃一部分 , 刚才提到的二次编码不需要 进行也可以顺利完成整个过程。因为整个过程都是 utf-8 编码的。
所以只是一种比较好的解决方式。
3. 编程涉及地方说明
值得一提的是,因为考虑到程序中处理的信息大多是西文信息,因此有些 WEB 容器(如: Tomcat4.x) 在处理所接收到的 request 字符串时, 如果您没指定 request 的编码方式则系统就 缺省地采用 ISO-8859-1,明白这一点对理解后面的问题会有帮助。 另外若数据库等使用 ISO-8859-1 好多时候也是可以实现一些中文, 原因我上面已经阐述了 一下。
这种方式下, 只要搞清楚取的时候是什么编码, 存的时候是什么编码, 就没有问题的。另外, 别忘了 java 系统和 JDBC 驱动本身会帮助我们进行编码转换, 而且不同的数据库驱动会返回 不同的编码的内容。具体转换就不再这里赘述了, 有兴趣的同事可以相互交流。
下面就公司几个项目实施中提取一些反复实践或推论出的东西, 和大家一起分享和研究。
Tomcat 默认总是使用 ISO-8859-1, 这就是说你用 GBK 编码的中文传到 tomcat 中, 在 servlet 里默认输出 System.out.println()总会得到乱码。 容器参数接收
中文编码解析问题

中文编码解析问题摘要:一、引言二、中文编码的基本概念1.汉字编码2.字符编码3.编码标准三、常见的中文编码问题及解决方法1.乱码问题2.显示问题3.输入问题四、实用编码技巧与建议1.文本处理软件的使用2.网页编码设置3.跨平台交流注意事项五、总结正文:一、引言随着互联网的普及和信息技术的发展,中文编码问题在日常工作和生活中愈发显现。
许多人在使用电脑、手机等设备时,会遇到中文显示不正常、输入困难等问题。
本文将详细介绍中文编码的基本概念,分析常见的中文编码问题,并提供解决方法和建议。
二、中文编码的基本概念1.汉字编码汉字编码是将汉字转换为计算机可以识别和处理的二进制数据的过程。
常见的汉字编码有GBK、GB18030、UTF-8等。
2.字符编码字符编码是用来表示文本中字符的一种编码方式。
常见的字符编码有ASCII、Unicode等。
3.编码标准编码标准是规定字符编码的一种国际标准。
目前常用的编码标准有ISO/IEC 10646、GB 18030等。
三、常见的中文编码问题及解决方法1.乱码问题乱码问题通常是由于使用不同编码标准的文本相互转换导致的。
解决方法是确保文本采用统一的编码标准,并在转换时选择正确的编码格式。
2.显示问题显示问题主要是由于操作系统、浏览器或其他软件默认编码设置与实际文本编码不匹配造成的。
解决方法是调整相关软件的编码设置,使之与文本编码相匹配。
3.输入问题输入问题包括输入法选择错误、输入法版本不兼容等。
解决方法是选择正确的输入法、更新输入法版本等。
四、实用编码技巧与建议1.文本处理软件的使用在使用文本处理软件时,应注意以下几点:(1)保存文档时,选择正确的编码格式。
(2)在跨平台交流时,尽量使用通用的编码标准,如UTF-8。
2.网页编码设置在制作网页时,需要在HTML文件的`<head>`部分指定字符编码,如下所示:```<meta charset="UTF-8">```3.跨平台交流注意事项在进行跨平台交流时,应注意以下几点:(1)确保双方采用相同的编码标准。
推荐Java:国际化编码解决

背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。
原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。
需要将系统的编码转换为java正确识别的编码问题就解决了。
1、native2ascii简介:native2ascii是sun java sdk提供的一个工具。
用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。
为什么要进行转码,原因在于程序的国际化。
Unicode编码的定义:Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
1990年开始研发,1994年正式公布。
随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。
(声明:Unicode编码定义来自互联网)。
2、获取native2ascii:安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。
3、native2ascii的命令行的命名格式:native2ascii -[options] [inputfile [outputfile]]说明:-[options]:表示命令开关,有两个选项可供选择-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]inputfile:表示输入文件全名。
outputfile:输出文件名。
国际化编码规则

国际化编码规则随着全球化的进程,各个国家、地区之间的交流合作越来越频繁。
而不同的语言和文化差异也给跨国交流带来了一些困难。
为了解决这些问题,国际化编码规则被广泛应用于交流、存储和处理各种类型的文本数据。
本文将主要介绍国际化编码规则中的中文部分。
国际化编码规则(Internationalization Encoding Rules,IER)是一种将文本转换为计算机可以处理的二进制数据的规则。
它使用特定的编码方式将字符映射成数字,以便计算机能够识别和处理文本数据。
由于不同的字符集和编码方式可能会影响文本数据在不同平台上的显示和传输,因此国际化编码规则被广泛应用于各种领域,如互联网、软件开发、电子商务等。
二、中文编码方式中文编码方式指将中文字符转换为计算机可以处理的二进制数据的方式。
一般来说,中文字符可以用两种方式进行编码:GBK/GB2312和UTF-8。
1. GBK/GB2312编码GBK/GB2312编码是一种将汉字、汉语拼音和拉丁字符等转换为二进制数据的编码方式。
它是国家标准GB2312的扩展编码,支持包括简体字、繁体字和香港/澳门字符在内的几乎所有中文字符。
GBK的编码表由国家标准出版社发布,其字符个数为21886个。
2. UTF-8编码UTF-8编码是一种将Unicode字符集中的中文字符、拉丁字符和其他字符转换为二进制数据的编码方式。
它是一种可变长编码方式,其编码框架为1至4个字节,可以表示Unicode字符集中的任意字符。
相比于GBK/GB2312编码,UTF-8编码的覆盖范围更广,可处理全球范围内的几乎所有字符集,其字符个数高达1112064个。
中文编码规则指在进行文本数据的处理和存储时,所采用的对应的编码方式和相关规则。
在处理中文文本数据时,常常需要注意以下一些规则:1. 编码表选择在进行中文编码时,应该根据编码表的特点和所要处理的中文文本的情况,选择合适的编码方式和编码表。
如果是处理简体中文,可以采用GB2312或GBK编码;如果是需要处理繁体中文,就需要使用Big5编码;如果需要支持全球范围内的字符集,就应该使用UTF-8编码。
文字编码介绍

公元: 2004年9月14日 星期二 5:19下午首页Java编程C&C++数据库游戏经验交流更您的位置:首页->Java->汉字编码问题汉字编码问题一、GB2312-80介绍GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布施,通行于大陆。
新加坡等地也使用此编码。
GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。
GB2312规定“对任意一个图形字符都示,每个字节均采用七位编码表示”,习惯上称第一个字节为“高字节”,第二个字节为“低字节”。
GB2312-80包含了大部汉字,和9区的符号。
该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。
其0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于0xf7fe。
GB2312将代码表分为94个区,对应第一字节(0xa1-0xfe);每个区94个位(0xa1-0xfe),对应第二字节,两个字节的值分别加32(2OH),因此也称为区位码。
01-09区为符号、数字区,16-87区为汉字区(0xb0-0xf7),10-15区、88-94区是有待进一区。
GB2312将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字3008个,置于56-87区,按部首/笔画顺序排列。
故而GB2312最多能表示6763个汉字。
GB2312的编码范围为2121H-777EH,与ASCII有重叠,通行方法是将GB码两个字节的最高位置1以示区别。
图1:GB2312编码图图中位于ASCII区中的虚线区域即为原GB2312编码区域,右下角实线区域为平移后的GB2312编码区域。
二、GB2312-80的扩展GBK是GB2312-80的扩展,是向上兼容的。
深入分析JavaWeb中的中文编码问题

深⼊分析JavaWeb中的中⽂编码问题要对Java Web项⽬进⾏编码原因:1、在计算机中存储信息的最⼩单位是1个字节,即8个bit,所以能表⽰的字符范围是0~255个。
2、电脑需要表⽰的符号太多、⽆法⽤1个字节完全表⽰。
要解决这个问题,必须要有⼀个新的数据结构char,⽽从bit到char就要进⾏编码。
常见的编码格式:1、ASCII码总共128个,⽤1个字符的低7位表⽰,0~31是控制字符,如换⾏、回车、删除等。
32~126是打印字符,可以通过键盘输⼊并且表⽰出来2、ISO-8859-1ISO组织在ASCII的基础上⼜制定了⼀系列标准来就、扩展ASCII编码,他们是ISO-8859-1和ISO-8859-15。
其中前者涵盖了⼤多数西欧语⾔字符,所以运⽤得⽐较⼴泛。
ISO-8859-1仍然是单字节编码,它总共能表⽰256个字符.因为ISO-8859-1是单字节的,所以很多中⽂字符(两个字节)在编码时⽤ISO-8859-1表⽰时,因超出表⽰范围,所以出现??很多情况是将中⽂字符⽤ISO-8859-1表⽰。
我们称之为“⿊洞”(它会将不认识的字符吸收掉)。
由于现在⼤部分基础的Java框架或系统默认的字符集编码都是ISO-8859-1,所以很容易出现乱码问题。
3、GB2312GB2312是双字节编码,总的编码范围是A1-F7,其中A1-A9是符号区,总共有682个符号,B0-F7是汉字区,包含6763个汉字。
4、GBKGBK全称是汉字内码扩展规范,是中国国家技术监督局开发出来扩展GB2312,并加⼊了更多的汉字,它的编码范围是8140~FEFE,能表⽰21003个汉字。
它与GB2312是兼容的。
5、GB18030Gb18030全称是信息技术中⽂编码字符集,是我国的强制标准,它可能是单字节的、双字节或者是四字节编码。
它的编码与GB2312编码兼容。
6、UTF-16ISO试图创建⼀个全新的超语⾔字典,世界上的语⾔都能使⽤这个字典进⾏翻译。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十二章S truts国际化程序和中文编码问题第一节国际化问题概述一、什么是国际化编程1)国际化(Internationalization ):就是设计一个应用的流程,以使之能够不经过工程修改就可以使用于各种不同的语言和区域场所。
2)本地化(Localization ):通过添加特定场所的组建和翻译文本来使软件适用于特定的场所和语言的过程。
我们花费了大量的精力来开发自己的Web应用,当然都希望在应用的开发上得到更大的投资回报。
因为互联网连接着世界各地,每个应用都可以面对国际的受众。
如果某个应用可以被本地化,那么它就可以被更多的访问者所访问。
特别是在多语言的国家,比如比利时、加拿大、瑞士,甚至美国尤其重要。
3)本地化那些内容:当一个软件产品需要在全球范围应用的时候,得考虑在不同的地域和语言环境下面的使用情况(也就是国际化问题),最简单的要求就是UI上的信息上能用本地化语言来显示,这主要包括操作界面的风格问题、提示和帮助语言的版本问题、界面定制个性化问题等。
Java语言内核基于Unicode2.1提供了对不同国家和不同语言文字的内部支持,由于先天的原因,Java对于国际化的支持远远要比C/C++来的优越。
Struts的国际化能力是它本身提供的,但为了更好的理解国际化问题,我们先从Java语言国际化本身的技术谈起。
二、几个术语1)i18n(Internationalization):就是internationalization, 国际化,由于首字母"i"和末尾字母"n"间有18个字符,所以简称i18n. internationalization指为了使应用程序能适应不同的语言和地区间的变化而不作系统性的变化所采取的设计措施,即:将依赖于语言和地区的代码与和语言无关的代码分离开来的过程。
一旦程序完成了这项工作,它只需很少的工作就可以适用于不同语言的国家和地区。
2)l10n(Localization):就是localization, 本地化,由于首字母"l"和末尾字母"n"间有10个字母,所以简称l10n. localization指为了使应用软件能够在某一特定语言环境或地区使用而加入本地特殊化部件和翻译后文本的过程,即:使程序适用于特定语言或地区的过程,它不仅包括文本的翻译,还包括特定于文化的数据项格式的转换。
3)locale:简单来说是指语言和区域进行特殊组合的一个标志。
三、Java中如何解决国际化的问题:1)应用被国际化的基本要求:要被国际化,一个应用应该能够。
1.自动地区分不同的场所;2.使用同一个可执行包根据不同的场所显示相应的信息和标签;3.在不重新编译的情况下提供对新的场所的支持;4.自动格式化场所敏感的条目,比如日期和货币,为相应的场所和语言支持的格式。
2)Java 语言对国际化的支持国际化需求Java 类区别不同的场所java.util.Locale使用同一个可执行包根据不同的场所显示相应的信息和标签java.util.ResourceBundle自动格式化场所敏感的条目,比如日期和货币,为相应的场所和语言支持的格式java.text.MessageFormat另外由于Java语言具有平台无关、可移植性好等优点,并且提供了强大的类库,所以Java 语言可以辅助我们解决上述问题。
Java语言本身采用双字节字符编码,采用大汉字字符集,Java 本身在设计时,即针对国际化之需求采用Unicode作为系统内部的编码,这就为解决国际化问题提供了很多方便。
四、实现国际化程序的基本思路1)国际化的基本策略利用locale类区分地理地区:在Java平台中,每种语言和地区在Java中都存在一个标识符(参考上面的locale说明),每个与本地化敏感的类都可以保存它自己的与本地化有关的信息,所有对本地化敏感的操作都可以明确指定一个地区标识符作为参数,这样,就大大简化了多语言程序。
利用资源文件文件来分离与语言有关的内容:从设计角度来说,只要把程序中与语言和文化有关的部分分离出来,加上特殊处理(单独提取出来并放到资源文件中),就可以部分解决国际化问题。
采用参数化的手段来定制界面:在界面风格的定制方面,我们可以把参数化的元素,如字体、颜色等,存储在数据库里,以便为用户提供友好的界面;如果某些部分包含无法参数化的元素,那么我们可能不得不分别设计,通过有针对性的编码来解决具体问题。
2)国际化程序的特征文本元素在程序中不进行硬编码。
它们存储于源代码之外,可自动进行动态检索;通过使用附加的本地化数据,统一可执行程序,可在世界各地运行;支持新的语言时无须重新编译;与文化有关的数据(如日期和货币),其格式根据最终用户的地区和语言而定并可以迅速进行本地化。
五、Java中与国际化问题相关的包与类在用Java解决国际化问题的过程中,可能利用到的主要的类都是由java.util包提供的。
该包中相关的类有Locale、ResourceBundle、ListResourceBundle、PropertyResourceBundle等,其继承关系如下图所示。
其中的各个类所提供的主要功能如下:1)Locale类该类包含对主要地理区域的地域化特征的封装。
其特定对象表示某一特定的地理、政治或文化区域。
通过设定Locale,我们可以为特定的国家或地区提供符合当地文化习惯的字体、符号、图标和表达格式。
例如,我们可以通过获得特定Locale下的Calendar类的实例,显示符合特定表达格式的日期。
Java使用兩個字符串代碼來表示不同的区域,分別是「语言」和「国家」,这两个代码遵守国际标准组织的标准,语言是遵守ISO-639的兩個小写英文字母來表示,而国家則使用ISO-3166的两个大写字母來表示。
完整的代碼,可在下列网址取得:/pub/ietf/http/related/iso639.txt,http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html 。
依照此标准,中文的代码是zh、英文的代码是en 、台湾的区域代码是TW、美国的区域代码是US、中国大陆的区域代码是CN。
语言代码说明国家或地区代码说明de German CN Chinaes Spanish CA Canadaen English DE Germanyfr French FR Franceja Japanese IN Indiajw Javanese US United Stateko Korean TW TaiWanzh Chinese注意:台湾的繁体为:zh-TW。
比如,对讲法语的加拿大人可以创建这样的场所:Locale locale = new Locale("fr", "CA");比如,中国大陆可以创建这样的场所:Locale locale = new Locale("zh", "CN");2)ResourceBundle:资源包(resource bundle)在设计一个国际化的应用时,你首先应该将注意力集中在用户接口上。
应用所使用的各种各样的菜单、对话框通常称为是程序资源。
许多编程环境的设计都允许用户接口可以从一个单独的文件-----资源包中来导入。
ResourceBundle类该类是一个抽象类,需要通过静态方法ResourceBundle.getBundle()指定具体实现类或属性文件的基本名称。
基本名称会协同指定的或默认的Locale类(程序执行时会按照系统环境预设的语言及区域,去取得相对应的属性文件),决定具体调用的类或属性文件的唯一名称。
例如:指定基本类或属性文件名称为TestBundle,而指定的Locale是CHINESE,那么最适合匹配的类名称为TestBundle_zh_CN.class,而最佳匹配属性文件名称为TestBundle_zh_CN.properties。
3)ListResourceBundle:该类继承ResourceBundle类,主要是增加了一些便于操作的方法,但由于它还是抽象类。
如果希望使用类的方式实现具体的ResourceBundle,一般情况下最好继承这个类。
4)PropertyResourceBundle:继承关系:该类也继承ResourceBundle类,可以实例化。
该类的行为特征如同java.util.properties类,利用它可以从输入流中获得具体属性对。
PropertyResourceBundle类是由属性文件(.properties)来取得程序中所需要的字串資源。
属性文件的名称命名规则该类用来管理一个文本消息集合,消息可以从一个属性文件中载入。
属性文件是一个简单的文本文件,而每个文本对应的场所则可以用一种缩写习惯所命名。
语言和国家代码被添加到文件名称的末尾,扩展名之前。
象下面这样:Applicatiopn_es_ES.propertyApplication_fr_FR.propertyApplication.property六、資源字串利用資源字串解决程序中的显示的文字语言种类---- 利用属性文件1)使用属性文件的优点属性文件是一个标准的文本文件,因此我們不需要重新编译程序的原始代码即可轻易增加不同区域的字串资源,这是优点也是其缺点,因为这样的区域资源將可轻易被修改。
且使用資源文件只能儲存“字串”資源,如果有其他类型的内容也需要因不同的区域,而有不同的内容时,則使用資源文件將无法滿足我們的需求。
这时就需要使用ResourceBundle 的另一个子类ListResourceBundle(利用类的方式)。
2)属性文件的命名格式类名_语言_国家.properties ,比如JavaWord_zh_CN.properties。
并在该属性文件中以Key=Value 形式给出属性项目,并且每个属性项目的值应该是Unicode编码的符号。
比如以中国大陆的使用环境为例,要存储符合我們使用的属性项目,则应该存储在JavaWord_zh_CN.properties文件中,而符合使用在中国台湾的属性文件名称就应该为JavaWord_zh_TW.properties。
我们可以针对不同的语言和地区提供不同的属性文件,在不同的属性文件中存储程序中的不同环境的字串资源。
第二节可以显示多国语言的程序实例1)不能国际化的程序我们先看一个不使用i18n处理的程序代码:public class NoI18nDemo {static public void main(String[] args) {System.out.println("Hello.");System.out.println("What is your major?");System.out.println("My major is computer technology.");}}2)语言信息存储文件显然,上述程序并不能显示多国文字,为了能显示多国文字,首先需要建立语言信息存储文件:建立四个文件(默认信息,美国,德国,中国):默认信息是指不输入文字信息时显示的字符文档,当输入错误的文字信息的时候,将显示平台默认字符模式。