Unicode和多语言信息处理 adoal.

Slides:



Advertisements
Similar presentations
遥远而神秘的大陆 —— 非洲, 有着悠久的历史,辽阔的地域、 奇特的风景和古朴的民俗;更 有那极具感染力、热情奔放的 音乐和舞蹈。 让我们一起走进非洲,去 聆听、感受和体验那具有独 特魅力的非洲歌舞音乐! 非洲正以其独特的、近乎原汁原味的风光和文化吸 引着全世界的目光, 也吸引了你我的目光。
Advertisements

汇编语言 程序设计 第 1 章 基础知识 第 1 章 基础知识 ◆ 汇编语言程序设计概述 ◆ 进位计数制及其相互转换 ◆ 计算机中数的表示 ◆ 计算机中字符的表示 汇编语言程序设计概述 进位计数制及其相互转换 计算机中数的表示 计算机中字符的表示.
1 1.2 信息的表示与存储  数据:数据是对客观事物的符号表示。 如,数值、文字、语言、图形、图像等都是不同形 式的数据。  信息:信息是既是对客观事物变化和特征的反映,又 是事物之间相互作用、相互联系的表征。 信息必须数字化编码,才能用计算机进行传送、存 储和处理。 信息具有针对性和时效性。
计算机应用基础 江西财经大学信息管理学院 凌传繁
第4章 文字处理与编辑排版.
2015退伍士兵焊工专业 第一学期 课程名称:计算机基础(一).
计算机应用基础 项目化教程 第1章计算机基础知识与操作入门.
2016年全国中级会计资格考试 经济法 主讲老师:葛江静.
附录1 基本英文打字指法 打字时坐势要端正,双脚自然平放在地上,肩部要放松,上臂自然下垂,大臂和肘不要远离身体,指、腕不要压到键盘上,座位高低要适度。
第6章 计算机网络基础 信息技术基础.
第二章:操作系统.
大学计算机基础 山东大学计算机学院 张鹏 高等学校计算机公共教学改革与实践 大学计算机基础 山东大学计算机学院 张鹏
论文题目 指导教师: 班级: 学生: 学号:.
第 9 章 多媒體.
汉字编码 汉字编码.
5.1 文本与文本处理 5.2 图像与图形 5.3 数字声音及应用 5.4 数字视频及应用
經濟部工業局 產業升級創新平台輔導計畫 (創新優化計畫)
課程名稱:計算機概論 授課老師:李春雄 博士

计算机应用基础 计算机基础知识.
市八中学 胡亮平 办公室:F504 高中信息科技 市八中学 胡亮平 办公室:F504
西安海天信息工程有限公司 3级系统集成资质认证答辩会演示稿
2.3 信息表示与编码 所谓编码,就是利用数字串来标识所处理对象的不同个体。
计算机基础.
第三章、自動檢查 編著者:蔡永銘.
第 5 章 數字系統與資料表示法.
第二章 數字系統:電腦內部的資料表示法 在第一章中,我們對於電腦有了初步的認識,在深入介紹電腦的各項組成元件之前,首先我們必須先了解另一種不同於人類使用習慣的二進位表示法,由於電腦的半導體、磁性、光學元件適合用來表示二進位,因此二進位表示法非常適合用來設計電腦。
计算机与信息技术应用基础 徐东雨 计算机中心
1.1 数据库技术概述 1.2 三种主要的数据模型 1.3 SQL 语言简介 1.4 SQL Server 2000 基础
第一章 信息技术与 计算机文化 潍坊医学院 第一章信息技术与计算机文化.
第二章 计算机基础知识 2.1 计算机系统的组成与工作原理 2.2 数制转换及运算 2.3 数据在计算机中的表示.
计算机文化基础.
數字系統與資料表示法 電腦的基本單位 數字系統 數值資料表示法 數值資料與算數運算 數碼系統 浮點數表示法 文字表示法 資料來源:周裕達教授.
第一章 计算机基础知识 计算机的基本概念 计算机系统的组成 信息的编码 微型计算机的硬件组成.
主講人:黃鎮榮 東方設計學院觀光與休閒事業管理系
DEV323 .NET架构:全球化思想! 定制各种文化及国际数据
本 章 重 點 9-1 檔案系統簡介 9-2 檔案管理.
中文輸入 拼音輸入法 拆字輸入法 綜合拼音與拆字輸入法 中文手寫輸入法 掃描、中文圖形輸入: 語音輸入法: 微軟新注音、自然輸入法
(C) Active Network CO., Ltd
資料表示法與數字系統 主講:顧叔財 資料來源: 計算機概論.
A3-1 數字系統 A3-2 資料表示法 A3-3 資料的儲存
计算机文化基础 第一章 计算机的基础知识.
中文世界 Ensky.
第2章 图形操作界面 目前,几乎所有的Linux发行版本中都包含了GNOME和KDE两种图形操作环境。在Fedora Core 6中系统默认的图形操作界面为GNOME,它除了具有出色的图形环境功能外,还提供了编程接口,允许开发人员按照自己的爱好和需要来设置窗口管理器。KDE桌面环境是一个网络透明的桌面环境,它的功能强大,除了窗口管理器和文件管理器外,基本覆盖了大部分Linux任务的应用程序组,同时还结合了Unix操作系统的灵活性。
精進教師研習 QR Code製作教學 資料來源:
Linux 中文化架構與原理 概說 名辭 原理 實作 其它.
网络游戏开发语言基础 ——Windows程序设计
微机原理电子教案 微机原理电子教案.
作業系統 (Operating System)
第1章 计算机基础知识 1.1 概述 1.2 计算机的系统组成 1.3 数据在计算机中的表示与存储 1.4 微型计算机系统的维护
6-1 資料表示法簡介 6-2 數值表示法 6-3 數字系統介紹 6-4 數字系統轉換方式
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
IT&SAMS小組 (IIT - 倉頡輸入法)
第 1 章 Java 簡介.
全国图书馆联合编目系统异构系统上载 发言人:索晶 2013年12月13日.
Chinese World hmwang.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
本节内容 字符编码 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第 1 章 文字媒體 多媒體導論與應用-第三版 1.1 文字的格式 1.2 數位化文字的應用 1.3 課後練習
第十五章 WWW網頁的製作 計算機概論編輯小組.
2-1 數位化概念 2-2 資料的數位化 ※ 2-3 基本數位邏輯處理
數字系統 資訊工程系 國立清華大學資訊基礎教育 教學改進計畫 數字系統 資訊工程系 /4/22.
主标题 副标题 日期.
第四章 图元的属性.
導 論 教學投影片.
設計圖法實習I 第一章 工程圖概述 1-1 工程圖之重要性 1-2 工程圖之種類 1-3 工程圖之規範 1-4 圖紙之規格.
1.4WIN32中的宽字符.
第二章 计算机中的信息表示.
鉅額買賣帳簿劃撥作業說明 臺灣集中保管結算所 九十六年三月.
Presentation transcript:

Unicode和多语言信息处理 adoal

内容 早期的本地化技术 软件国际化和多语言信息处理的需求 常见字符集、编码介绍 Unicode Technology 简介 Internet 时代的多语言信息处理 相关资源 不涉及文字消息(界面)本地化

早期的本地化技术 问题的历史起因 早期的本地化努力 电子计算机源起于英美,较少考虑国际需求 早期不面向普通用户,无交互 互相独立缺乏沟通合作 逆向工程、外挂,支持不彻底 应用软件要做个例修改,缺乏复用 早期汉化的重要成果:GB2312 标准

基于国际化的本地化 抽象出共同部分做成框架 文字处理 数据库 多媒体 …… 应用程序接口 国际化核心功能 本地化数据定义接口 英文定义 俄文定义 中文定义 ……

基于国际化的本地化-续 成果 缺陷 抽象框架,功能复用,简化开发过程 可加载的本地化模块,易于扩展 宽字符机制,避开多字节编码的字节边界 编码空间不兼容,导致“乱码” 即使使用宽字符,不同语言的文字也无法共同处理

馻 ña 乱码一例 GBK Latin-1 序列 0xF1,0x61 如何解释? Byte1 : [0x81, 0xFE] Single byte : [0xA0, 0xFF] 序列 0xF1,0x61 如何解释? 在GBK里是馻 在Latin-1里是ña 馻 ña

多语言需求的解决方法 问题:字符集太小 问题:编码空间冲突 解决:设计大字符集并预留扩充位 解决:设计新的编码方式 有状态编码,使用转义序列 局部兼容性,编程复杂 无状态编码,为每个编码点保留唯一编码值 需要码表转换,编程简单

常见字符集和编码 ASCII American Standard Code for Information Interchange 起源于美国国会图书馆 等同于 ISO 646 包含英文大小写字母、阿拉伯数字、标点符号、控制符 7位编码 是后来各种字符集、编码的兼容性参考

常见字符集和编码-续 ISO-8859 扩充了ASCII,加入欧洲语言的字母和符号 8位编码,扩充部分在b7=1的区域,避开控制符,与ASCII兼容 分为多个扩展集,适应不同文字 ISO-8859-1 西欧 ISO-8859-5 西里尔语 ISO-8859-7 希腊语 ISO-8859-15 增加欧元符号 ……

常见字符集和编码-续 亚洲语言的字符集 亚洲语言的编码系统 中国大陆:GB系列 中国台湾:CNS、Big5 日本:JIS X 韩国:KSC 大字符集:CCCII、ANSI Z39.64、ISO 10646 亚洲语言的编码系统 ISO-2022 多七位编码 EUC 多八位编码 双字节编码:Shift JIS、GBK、Big5 Unicode类编码 其它:HZ-GB-2312、GB18030、TRON、ANSI Z39.64等

Unicode Technology Unicode是什么? 关于字符集、编码的一系列相关标准和处理技术的总和 Unicode provides a unique number for every character, no matter 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或1 Unicode:直接使用16位元,不避C0和C1 Unicode与ISO-10646的统一 ISO 10646放弃避开控制区的方式 Unicode并入ISO 10646的字面0,使用多八位元表示 Unicode版本在不断更新 增加新的字符,修正错误

Unicode Technology-续 字符索引值的结构 b31固定为0 0ggggggg pppppppp rrrrrrrr cccccccc b31固定为0 7位群(group)索引,8位面(plane)索引,8位行(row)索引,8位格(cell)索引 每个面的0xFFFE和0xFFFF值保留 总共可收录的字数为128×256×(256×256-2)=2,147,418,112个

Unicode Technology-续 Unicode的字符集 UCS: Universal Multiple-Octet Coded Character Set BMP: Basic Multilingual Plane即Plane 0 UCS-2 BMP的字符集 相当于早期的Unicode

Unicode Technology-续 Unicode BMP字符子集 BMP外的字符子集 AC00~D7FF: 韩文拼音组合字 0000~007F: ASCII 0080~00A0: C1控制码 00A1~1FFF: 拼音文字 2000~28FF: 符号 2E80~33FF: 中日韩符号(部首、注音符号、日文假名、带括号数字等) 3400~4DFF: 中日韩表意文字扩充区 4E00~9FFF: 中日韩表意文字主区(20902个汉字) A000~A4FF: 彝族文字 AC00~D7FF: 韩文拼音组合字 D800~DFFF: 代用对,专用于UTF-16 E000~F8FF: 私有区,用于自造字 F900~FAFF: 中日韩兼容表意文字区 FB00~FFFD: 文字表现形式区(竖排标点、全角字符等) BMP外的字符子集 Plane1: 其它非表意文字 Plane2: 中日韩扩充文字和CNS11643兼容字

Unicode Technology-续 Unicode的编码方式 Unicode Transformation Format UTF-32 目的: 效率、兼容性 UTF-32 直接用一个32位元表示一个UCS字符 UTF-16 用1~2个16位元表示一个UCS字符 BMP字符为1个16位元,其它面字符用代用对 UTF-8 用1~4个8位元表示一个UCS字符,理论上是6个 ASCII为1个8位元,大部分拼音文字用2个8位元,表意文字用3个8位元,BMP之外的面用4个8位元 Java里的UTF-8可能出现6个8位元,是历史原因,目前已定义的Unicode字符至多用到4个

Unicode Technology-续 UTF-8的编码规则 Unicode范围 UTF-8编码 00000000~0000007F 0xxxxxxx 00000080~000007FF 110xxxyy 10yyyyyy 00000800~0000FFFF 1110xxxx 10xxxxyy 10yyyyyy 00010000~001FFFFF 11110xxx 10xxyyyy 10yyyyzz 10zzzzzz

Unicode Technology-续 字节序 用多八位元表示16位或32位整数 Big-endian、Little-endian 字节顺序标记 数值: FEFF UTF-16BE: FE FF UTF-16LE: FF FE UTF-8: EF BB BF

开发支持Unicode的程序 操作系统和运行时库的Unicode支持 Windows NT Family的Win32子系统 User level API全面支持Unicode,同时提供非Unicode的API兼容16位Windows下的源代码 Unicode文本使用UTF-16编码 Unicode IME:码表、微软输入法、拼音加加3.1 Windows 9X的Unicode API只提供了入口,内部没有实现,调用则返回错误代码

开发支持Unicode的程序-续 操作系统和运行时库的Unicode支持-续 开放系统 各类Unix系统的syscall、vfs等涉及文本的地方都是char*,因此最好的折中方式是UTF-8 glibc的wide char是UTF-32编码,但只适用于GNU系统;其它系统的libc未必如此 XFree86/Xorg在保留复杂的X11复合文本的同时引入Xutf8系列API支持Unicode gnome使用UTF-8作为内部编码,KDE通过QString支持Unicode scim输入平台全面支持Unicode

开发支持Unicode的程序-续 Windows的双模API 文档中的原型 实际原型 BOOL SetWindowText(HWND hWnd, LPCTSTR lpString); 实际原型 BOOL SetWindowTextA(HWND hWnd, LPCSTR lpString); BOOL SetWindowTextW(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的能力 出现太晚,大多数第三方软件开发商不支持 其它选择 双版本可执行程序 自己写自适应层

开发支持Unicode的程序-续 编程语言/开发环境对Unicode的支持 C和C++ Java Delphi 开源社区的脚本语言 wide char并不保证字符集和编码方式 ISO C99提供了可选的ISO10646支持 必要时可借助IBM的ICU Java 从一开始设计就支持Unicode 早期UCS-2,后来通过UTF-16全面支持 Delphi 以兼容性为借口不在VCL中支持Unicode TntTWare Delphi Unicode Controls 开源社区的脚本语言 积极支持Unicode

开发支持Unicode的程序-续 Internet与Unicode HTML用Unicode作为字符集 Email信头和信体的编码设定 IMAP协议用变种UTF-7传送邮件夹名称 LDAPv3使用UTF-8传送文本 SFTP使用UTF-8传送文件名 多语种域名解析系统 IETF建议以后新发明的协议和URI表示法都支持UTF-8

相关资源 乱码大全 - bluesea@smth CJK.INF & CJKV Information Procesing - Ken Lunde Unicode与ISO10646 -曾士熊 UTF-8 and Unicode FAQ (for Linux) – Markus Kuhn Developing International Software (中译版《国际化软件开发》) – Microsoft Corp. MSDN Library – Microsoft Corp. RFC中的相关篇目 - IETF