Unicode和多语言信息处理 - 浙江大学计算机辅助设计与图形.ppt

上传人:创****公 文档编号:1705011 上传时间:2019-10-23 格式:PPT 页数:25 大小:543.50KB
返回 下载 相关 举报
Unicode和多语言信息处理 - 浙江大学计算机辅助设计与图形.ppt_第1页
第1页 / 共25页
Unicode和多语言信息处理 - 浙江大学计算机辅助设计与图形.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《Unicode和多语言信息处理 - 浙江大学计算机辅助设计与图形.ppt》由会员分享,可在线阅读,更多相关《Unicode和多语言信息处理 - 浙江大学计算机辅助设计与图形.ppt(25页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Unicode和多语言信息处理,adoal,内容,早期的本地化技术软件国际化和多语言信息处理的需求常见字符集、编码介绍Unicode Technology 简介开发支持Unicode的程序Internet 时代的多语言信息处理相关资源不涉及文字消息(界面)本地化,早期的本地化技术,问题的历史起因电子计算机源起于英美,较少考虑国际需求早期不面向普通用户,无交互早期的本地化努力互相独立缺乏沟通合作逆向工程、外挂,支持不彻底应用软件要做个例修改,缺乏复用早期汉化的重要成果:GB2312 标准,基于国际化的本地化,抽象出共同部分做成框架,应用程序接口,国际化核心功能,本地化数据定义接口,英文定义,俄文

2、定义,中文定义,文字处理,数据库,多媒体,基于国际化的本地化续,成果抽象框架,功能复用,简化开发过程可加载的本地化模块,易于扩展宽字符机制,避开多字节编码的字节边界缺陷编码空间不兼容,导致“乱码”即使使用宽字符,不同语言的文字也无法共同处理,乱码一例,GBKByte1 : 0x81, 0xFEByte2 : 0x40, 0xFELatin-1Single byte : 0xA0, 0xFF序列 0xF1,0x61 如何解释?在GBK里是馻在Latin-1里是a,馻,a,多语言需求的解决方法,问题:字符集太小解决:设计大字符集并预留扩充位问题:编码空间冲突解决:设计新的编码方式有状态编码,使用转

3、义序列局部兼容性,编程复杂无状态编码,为每个编码点保留唯一编码值需要码表转换,编程简单,常见字符集和编码,ASCIIAmerican Standard Code for Information Interchange起源于美国国会图书馆等同于 ISO 646包含英文大小写字母、阿拉伯数字、标点符号、控制符7位编码是后来各种字符集、编码的兼容性参考,常见字符集和编码续,ISO-8859扩充了ASCII,加入欧洲语言的字母和符号8位编码,扩充部分在b7=1的区域,避开控制符,与ASCII兼容分为多个扩展集,适应不同文字ISO-8859-1 西欧ISO-8859-5 西里尔语ISO-8859-7 希

4、腊语ISO-8859-15 增加欧元符号,常见字符集和编码续,亚洲语言的字符集中国大陆:GB系列中国台湾:CNS、Big5日本:JIS X韩国:KSC大字符集:CCCII、ANSI Z39.64、ISO 10646亚洲语言的编码系统ISO-2022 多七位编码EUC 多八位编码双字节编码:Shift JIS、GBK、Big5Unicode类编码其它:HZ-GB-2312、GB18030、TRON、ANSI Z39.64等,Unicode Technology,Unicode是什么?Unicode provides a unique number for every character,no m

5、atter what the platform,no matter what the program,no matter what the language.关于字符集、编码的一系列相关标准和处理技术的总和,Unicode Technology续,Unicode的起源与发展发起者:Xerox、Apple、IBM、Microsoft、Sun、DEC、Novell等Unicode与ISO-10646的竞争ISO 10646:4个8位元定长,避开控制区C0和C1,不要求b7都为0或1Unicode:直接使用16位元,不避C0和C1Unicode与ISO-10646的统一ISO 10646放弃避开控制

6、区的方式Unicode并入ISO 10646的字面0,使用多八位元表示Unicode版本在不断更新增加新的字符,修正错误,Unicode Technology续,字符索引值的结构0ggggggg pppppppp rrrrrrrr ccccccccb31固定为07位群(group)索引,8位面(plane)索引,8位行(row)索引,8位格(cell)索引每个面的0xFFFE和0xFFFF值保留总共可收录的字数为128256(256256-2)=2,147,418,112个,Unicode Technology续,Unicode的字符集UCS: Universal Multiple-Octet

7、 Coded Character SetBMP: Basic Multilingual Plane即Plane 0UCS-2BMP的字符集相当于早期的Unicode,Unicode Technology续,Unicode BMP字符子集0000007F: ASCII008000A0: C1控制码00A11FFF: 拼音文字200028FF: 符号2E8033FF: 中日韩符号(部首、注音符号、日文假名、带括号数字等)34004DFF: 中日韩表意文字扩充区4E009FFF: 中日韩表意文字主区(20902个汉字)A000A4FF: 彝族文字,AC00D7FF: 韩文拼音组合字D800DFFF:

8、 代用对,专用于UTF-16E000F8FF: 私有区,用于自造字F900FAFF: 中日韩兼容表意文字区FB00FFFD: 文字表现形式区(竖排标点、全角字符等)BMP外的字符子集Plane1: 其它非表意文字Plane2: 中日韩扩充文字和CNS11643兼容字,Unicode Technology续,Unicode的编码方式Unicode Transformation Format目的: 效率、兼容性UTF-32直接用一个32位元表示一个UCS字符UTF-16用12个16位元表示一个UCS字符BMP字符为1个16位元,其它面字符用代用对UTF-8用14个8位元表示一个UCS字符,理论上是

9、6个ASCII为1个8位元,大部分拼音文字用2个8位元,表意文字用3个8位元,BMP之外的面用4个8位元Java里的UTF-8可能出现6个8位元,是历史原因,目前已定义的Unicode字符至多用到4个,Unicode Technology续,UTF-8的编码规则,Unicode Technology续,字节序用多八位元表示16位或32位整数Big-endian、Little-endian字节顺序标记数值: FEFFUTF-16BE: FE FFUTF-16LE: FF FEUTF-8: EF BB BF,开发支持Unicode的程序,操作系统和运行时库的Unicode支持Windows NT

10、Family的Win32子系统内部全面支持Unicode,内核、设备驱动、文件系统接口都使用UnicodeUser level API全面支持Unicode,同时提供非Unicode的API兼容16位Windows下的源代码Unicode文本使用UTF-16编码Unicode IME:码表、微软输入法、拼音加加3.1Windows 9X的Unicode API只提供了入口,内部没有实现,调用则返回错误代码,开发支持Unicode的程序续,操作系统和运行时库的Unicode支持续开放系统各类Unix系统的syscall、vfs等涉及文本的地方都是char*,因此最好的折中方式是UTF-8glib

11、c的wide char是UTF-32编码,但只适用于GNU系统;其它系统的libc未必如此XFree86/Xorg在保留复杂的X11复合文本的同时引入Xutf8系列API支持Unicodegnome使用UTF-8作为内部编码,KDE通过QString支持Unicodescim输入平台全面支持Unicode,开发支持Unicode的程序续,Windows的双模API文档中的原型BOOL SetWindowText(HWND hWnd, LPCTSTR lpString);实际原型BOOL SetWindowTextA(HWND hWnd, LPCSTR lpString);BOOL SetWin

12、dowTextW(HWND hWnd, LPCWSTR lpString);#ifdef UNICODE#define SetWindowText SetWindowTextW#else#define SetWindowText SetWindowTextA#endif,开发支持Unicode的程序续,用MSLU开发支持Unicode的软件原理在NT上直接调用-W API在9X上截取-W系列API的调用转为-A系列API好处与局限性在NT上不损失任何功能和性能,在9X上正常运行支持的API不够完整,有些需要自己重载并不能给9X带来支持Unicode的能力出现太晚,大多数第三方软件开发商不支持其

13、它选择双版本可执行程序自己写自适应层,开发支持Unicode的程序续,编程语言/开发环境对Unicode的支持C和C+wide char并不保证字符集和编码方式ISO C99提供了可选的ISO10646支持必要时可借助IBM的ICUJava从一开始设计就支持Unicode早期UCS-2,后来通过UTF-16全面支持Delphi以兼容性为借口不在VCL中支持UnicodeTntTWare Delphi Unicode Controls开源社区的脚本语言积极支持Unicode,开发支持Unicode的程序续,Internet与UnicodeHTML用Unicode作为字符集Email信头和信体的编

14、码设定IMAP协议用变种UTF-7传送邮件夹名称LDAPv3使用UTF-8传送文本SFTP使用UTF-8传送文件名多语种域名解析系统IETF建议以后新发明的协议和URI表示法都支持UTF-8,相关资源,乱码大全 - blueseasmthCJK.INF & CJKV Information Procesing - Ken LundeUnicode与ISO10646 -曾士熊UTF-8 and Unicode FAQ (for Linux) Markus KuhnDeveloping International Software (中译版国际化软件开发) Microsoft Corp.MSDN Library Microsoft Corp.RFC中的相关篇目 - IETF,

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

当前位置:首页 > pptx模板 > 校园应用

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com