国际化安全

上传人:石磨 文档编号:183383423 上传时间:2021-06-03 格式:PPT 页数:36 大小:344.50KB
返回 下载 相关 举报
国际化安全_第1页
第1页 / 共36页
国际化安全_第2页
第2页 / 共36页
国际化安全_第3页
第3页 / 共36页
国际化安全_第4页
第4页 / 共36页
国际化安全_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《国际化安全》由会员分享,可在线阅读,更多相关《国际化安全(36页珍藏版)》请在金锄头文库上搜索。

1、第六章,国际化安全,国际化安全PPT课件,2,国际化(internationalization),是为了保证软件产品适应不同区域语言要求的一种方式。由于英文单词 internationalization的首末字符i和n之间的字符数为18,因此业界内常把I18N作为“国际化”的简称。 以WEB应用为例,随着经济的发展,全球经济一体化已经慢慢成为一种主流趋势,WEB应用要求必须能够支持多国语言。对于同一个WEB应用,在不同的语言环境下需要显示不同的效果,来方便用户。我们经常看到,一些网站都有各个不同的语言版本,在运行时,能够根据客户浏览器所在的国家和语言的不同,显示不同的用户界面。 软件支持多种不

2、同的语言,绝不是开发了软件的多个版本。业界具有一定的规则让信息进行复用,即对同样信息进行各种代码的转换。这样可以使得当需要在应用程序中添加对一种新的语言的支持时,不需要重新再开发一个软件,造成重复劳动。而安全问题就存在于代码转换的过程之中。 本章主要针对国际化过程中的安全问题进行讲述,首先讲解常见的国际化过程,然后讲解国际化转码中需要注意的安全问题。,国际化安全PPT课件,3,6.1 国际化的基本机制,国际化安全PPT课件,4,随着经济全球化的发展,软件也应该具有支持各种语言和地区的能力。国际化的主要目的,是调整软件,使之能适用于不同的语言及地区。如图所示是一个表单在中国和美国的两个显示效果。

3、 从以上界面上看出,两个页面功能相同,但是在不同的地区,为了照顾不同的用户,显示界面不同,这就需要在开发的过程中充分考虑国际化问题。,国际化安全PPT课件,5,与国际化类似的另一个概念是本地化(localization)。在业界内,两个概念一般一起讲,有时候甚至被等同起来。不过,从概念上说,本地化是实现国际化的一些手段的集合。 国际化的概念,比较偏向表达软件的设计思想,要求当软件被移植到不同的语言及地区时,软件的业务逻辑和程序源代码不用作改变或修正,但是软件又必须让该地区和语言的用户方便地使用;本地化的概念偏向对软件进行加工,使之满足特定地区和特定语言的用户对语言和功能的特殊要求,实际上是一指

4、一系列工作的过程。软件本地化工作,可能涉及文字的翻译、用户界面布局调整、本地特性开发、联机文档和印刷手册的制作,以及保证本地化版本能正常工作等,实际上也算是软件质量保证活动的一部分。国际化简称为I18N,本地化由于其单词localization的L和N之间有10个字母,因此也被简称为L10N。 国际化和本地化这两个工作,一个是设计思想,一个是工作的手段,相辅相成,互为补充。在有些企业中,也使用全球化(globalization)来表示国际化和本地化的合称,使用 G11N作为简称。,国际化安全PPT课件,6,从具体的工作内容上说,国际化与本地化工作,实际上包括的细节很多,也很繁杂。以下列举一些常

5、见的工作: 不同语言表达方式; 电子文件的编码; 数字命名系统的不同; 文字书写方向(如英语是从左到右,阿拉伯语从右到左); 语言细微差别(如英国英语中的Colour和美国英语中的Color); 货币; 日期格式; 数字格式;等等。,国际化安全PPT课件,7,6.1.2 国际化过程,开发软件时,国际化和本地化对开发者是一个有挑战性的任务。很多软件,在件刚开始设计时,并没有考虑到需要在不同的语言和地区使用,于是就没有按照国际化的思想去设计,但是一段时间之后,软件突然出现要在其他地区使用的任务,国际化和本地化的工作将会十分艰难。 怎样让程序从一开始就为国际化和本地化提供开发基础呢?我们知道,软件的

6、难度在于程序的业务逻辑,一般情况下不应该随便对业务逻辑进行改动。程序在不同地区运行的过程中,实际上,程序的逻辑只有一份,只是界面的表示有所不同,而应该避免的是程序逻辑的修改。因此,通常作法是:将文本和其他与环境相关的资源单独编写,和程序代码相分离。这样,在理想的情况下,应对变化的环境时,无需修改代码,只需要修改资源,从而显著简化了工作。,国际化安全PPT课件,8,以下是国际化(本地化)的基本过程。,国际化安全PPT课件,9,从上面的图中可以看出,国际化过程包括3个部分: 1:资源文件。是一个文件,能够保存各种不同语言所对应的资源。 2:读取工具。能够根据语言来读取资源文件。 3:应用程序。调用

7、读取工具,读取资源文件。 在很多软件里面实现了国际化,以Java框架为例,要开发一个支持英文和中文的欢迎界面,该界面标题根据系统语言的不同而自动变化,可以利用接下来的一些代码来实现。,国际化安全PPT课件,10,以下是支持英文显示的资源文件: messageResource_en_US.properties 以下是支持中文显示的资源文件(在Java中实现了转码,将“欢迎您来到本系统”转化成了ASCII码表示,用native2ascii来实现。这是Java的语言特点,其他语言不一定相同): messageResource_zh_CN.properties P06_01.java为界面类。,wel

8、comeMessage=Welcome to visit our system!,welcomeMessage=u6B22u8FCEu60A8u6765u5230u672Cu7CFBu7EDF,国际化安全PPT课件,11,首先,将系统语言变为中文(中国)。如果使用的是windows系统,你可以通过控制面板中的“区域和语言选项”来修改:,国际化安全PPT课件,12,运行,得到如下界面; 然后将系统语言变为“英语”,运行,得到如下界面。,国际化安全PPT课件,13,6.2 国际化中的安全问题,国际化安全PPT课件,14,6.2 国际化中的安全问题,国际化过程中,遇到的最重要的问题是不同的语言文字,

9、在不同的系统中具有不同的表达方式,也就是通常所说的编码。编码是不同国家的语言在计算机中的一种存储和解释规范,在各个不同规范中,存储了相应能够表达一定内容的的若干字符,称为字符集。 最原始的字符集是美国国家标准学会(American National Standards Institute, ANSI)的美国信息交换标准码(American Standard Code for Information Interchange,ASCII字符集),它使用7个比特来表示一个字符,总共表示128个字符;不过,由于一个字节一般占用8个比特,为了充分利用一个字节所能表达的最大信息,IBM公司对ASCII字符

10、集进行了扩展,用一个字节来表示一个字符,这样,让ASCII码字符集总共可以表示256个字符。不过,我们常说的ASCII码字符集表达的还是128个字符,常见的ASCII码字符集表也是基于128字符的ASCII码字符集编写的。,国际化安全PPT课件,15,由于英文和大部分的西方语言都是以字母拼写为基础的,需要的字母数量不多。因此,以上ASCII码字符集对这些语言的表达,基本能够胜任。但是,世界上的语言种类多种多样,如中文、日文、韩文等,语言中含有的文字就几千个,ASCII字符集就无法胜任其表达。因此,在ASCII字符集的基础之上,又派生出了一些新的字符集,如:GB2312、UTF-8、UTF-16

11、等,称为MBCS(Multi-Byte Chactacter System,多字节字符系统。 提示: 注意,同一个字,在不同的系统中可能有不同的表达方式。如“中国人”,在GB2312字符集和UTF-8字符集中,其表达方式完全不一样,读者可以编写相应的程序进行验证。 有人可能会问,为什么不将这些字符集统一成为一个呢?这是因为各种字符集都有其发布的历史,一个字符集发布一段时间,功能需要扩充,于是出来了新的字符集,但是原有的项目要改成新的字符集,需要花费一些成本。久而久之,就造成了很多字符集并存的局面。,国际化安全PPT课件,16,6.2.2 字符集转换,在实际的项目中,源数据可能来自于不同的字符集

12、(如支持不同字符集的数据库),而源数据需要以某种方式被目标程序使用,如显示在界面上、或者被目标程序进行加工等等。这时候遇到的最大问题就是:目标程序所支持的字符集和源数据属于的字符集可能不一致。此种情况下,可能造成系统显示出错。根据情况的不容,这里进行一个分类: 1:当目标程序所支持的字符集和源数据属于的字符集完全不兼容时,数据无法显示(或者以乱码形式显示)。例如,对于中文来说,如果如源数据库使用字符集GBK,从数据库中查出来的中文内容,想要在目标程序上使用,而目标程序默认支持ASCII,由于GBK是16位字符集,而ASCII是7位字符集,两者完全不兼容,或者说没有任何关系,每一个中文字符在AS

13、CII中,都不能够找到对等的字符,所以所有中文字符都会丢失而变成乱码形式。,国际化安全PPT课件,17,2: 当目标程序所支持的字符集是源数据属于的字符集的子集时,信息会部分丢失。例如,如果源数据库使用GBK,而目标程序字符集使用GB2312,这个过程中绝大部分字符都能够正确转换,但是由于GB2312字符集小于GBK,因此一些超出GB2312字符集的字符变为乱码。 在这些情况下,就必须进行字符集转换,俗称转码。各种语言中都有不同的转码支持。本节以Visual C+为例来讲解转码问题。,国际化安全PPT课件,18,在Visual C+中,有如下两个函数对转码进行支持: MultiByteToWi

14、deChar; WideCharToMultiByte。 在这两个函数中,“MultiByte”称为短字符,一般为8bit或8bit以内来表示的字符,如ASCII码。“WideChar”称为宽字符,一般是指用16bit或以上(如果有的话)表示的字符,如UNICODE。 MultiByteToWideChar函数的功能是:将一个由短字符组成的字符串转换为一个宽字符组成的字符串。函数原型是:,int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, int cchMultiByte, LPWSTR lp

15、WideCharStr, int cchWideChar),国际化安全PPT课件,19,由于本书内容所限,不对该函数进行详细的讲解,有关各参数,在此进行简单的阐述: 1:CodePage:指定执行转换的代码页(实际上就是字符集或编码方式),这个参数可以为系统已安装或有效的任何代码页所给定的值。你也可以指定其为下面的任意一值: CP_ACP:ANSI代码页; CP_MACCP:Macintosh代码页; CP_OEMCP:OEM代码页; CP_SYMBOL:符号代码页; CP_THREAD_ACP:当前线索ANSI代码页; CP_UTF7:使用UTF-7转换; CP_UTF8:使用UTF-8转换

16、。,国际化安全PPT课件,20,2:dwFlags:一组标记,用以指出字符的处理方式。可以是以下标记常量的组合,含义如下: MB_PRECOMPOSED:由一个基本字符和一个非空字符组成的字符只有一个单一的字符值。这是缺省的转换选择。不能与MB_COMPOSITE值一起使用。注意,推荐使用该标志,因为这会在某种程度上消除产生组合字符的可能并加速规范化。 MB_COMPOSITE:由一个基本字符和一个非空字符组成的字符分别有不同的字符值。这是缺省的转换选择。该选项不能与MB_PRECOMPOSED值一起使用。 MB_ERR_INVALID_CHARS:如果函数遇到无效的输入字符,它将运行失败。该标记能够捕获未定义的字符,因此,在不大于50000的CodePage中,推荐使用该标记。 MB_USEGLYPHCHARS:使用象形文字替代控制字符。,国际化安全PPT课件,21,3:lpMultiByteStr:将被转换字符串的字符。 4:cchMultiByte:指定由参数lpMultiByteStr指向的字符串中字节的个数。如果这个值为-1,字符串将被设定为以NULL为结束符的字符串,并且自

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 质量控制/管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号