目前计算机中用得最广泛的字符集及其编码

目前计算机中用得最广泛的字符集及其编码
目前计算机中用得最广泛的字符集及其编码

目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。

因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;

通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;

第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。

ASCII共定义了256个代码(从0-255),从0-32位为控制字符(ASCII control characters),从33-127位为可打印字符(ASCII printable characters)。从

0-127是标准的ASCII编码,从128-255是扩展的ASCII编码。

注意:在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

ASCII编码控制字符(ASCII control characters)

二进制十进

十六进

控制字

转义字

说明

000

0000

0 00 NUL 0 Null character(空字符)

000

0001

1 01 SOH Start of Header(标题开始)

000

0010

2 02 STX Start of Text(正文开始)

000

0011

3 03 ETX End of Text(正文结束)

000

0100

4 04 EOT End of Transmission(传输结束) 000

0101

5 05 ENQ Enquiry(请求)

000

0110

6 06 ACK Acknowledgment(收到通知)

000

0111

7 07 BEL a Bell(响铃)

000

1000

8 08 BS b Backspace(退格)

000

1001

9 09 HT t Horizontal Tab(水平制表符)

000

1010

10 0A LF n Line feed(换行键)

000

1011

11 0B VT v Vertical Tab(垂直制表符)

000

1100

12 0C FF f Form feed(换页键)

000

1101

13 0D CR r Carriage return(回车键)

000

1110

14 0E SO Shift Out(不用切换)

000

1111

15 0F SI Shift In(启用切换)

001

0000

16 10 DLE Data Link Escape(数据链路转义) 001

0001

17 11 DC1 Device Control 1(设备控制1) 001 18 12 DC2 Device Control 2(设备控制2)

0010

001

0011

19 13 DC3 Device Control 3(设备控制3) 001

0100

20 14 DC4 Device Control 4(设备控制4)

001 0101 21 15 NAK

Negative Acknowledgement(拒绝接

收)

001

0110

22 16 SYN Synchronous Idle(同步空闲)

001 0111 23 17 ETB

End of Trans the Block(传输块结

束)

001

1000

24 18 CAN Cancel(取消)

001

1001

25 19 EM End of Medium(介质中断)

001

1010

26 1A SUB Substitute(替补)

001

1011

27 1B ESC e Escape(溢出)

001

1100

28 1C FS File Separator(文件分割符) 001

1101

29 1D GS Group Separator(分组符)

001

1110

30 1E RS Record Separator(记录分离符) 001

1111

31 1F US Unit Separator(单元分隔符)

常用字符集编码详解:ASCII 、GB2312、GBK、GB18030、...

ASCII ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。 GB2312 GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。 区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。它将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。 GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。可以用繁体汉字测试某些系统是不是只支持GB2312编码。 GB2312的编码范围是0xA1A1-0x7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。 EUC-CN可以理解为GB2312的别名,和GB2312完全相同。 区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。HZ和ISO- 2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。区位码和GB2312编码的关系有点像Unicode和UTF-8。 GBK GBK编码是GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。同GB2312一样,GBK也支持希腊字母、日文假名字母、俄语字母等字符,但不支持韩语中的表音字符(非汉字字符)。GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。 GBK的整体编码范围是为0x8140-0xFEFE,不包括低字节是0×7F的组合。高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE。

mysql字符集设定

2.MySQL5.1以及之前的版本:[mysqld]设置default-character-set 3.MySQL的字默认引擎设置 在修改默认引擎之前,最好了解mysql读取配置文件https://www.360docs.net/doc/f19644099.html,f的顺序,以及mysql的目录结构--默认basedir=/usr ,datadir=/var/lib/mysql,/etc/https://www.360docs.net/doc/f19644099.html,f 配置文件读取顺序详见另一篇帖子。 1.查看mysql的存储引擎信息 mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------

------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | +--------------------+---------+----------------------------------------------------------------+--------------+------+-------- MySQL-5.5.19-1.linux2.6.i386的默认引擎为InnoDB。 2.设置mysql的默认存储引擎 编辑https://www.360docs.net/doc/f19644099.html,f配置文件,在服务器端配置信息[mysqld]下面添加: default-storage-engine = MyISAM 即可设置mysql数据库的默认引擎为MyISAM 3.设置当前会话的默认存储引擎 SET storage_engine=InnoDB; 即可以设置当前会话连接的默认存储引擎为InnoDB。 4.指定表的存储引擎 如: create table t_innodb( id int(3) ) engine = innodb; 然后使用 mysql> show table status like 't_i%'\G; 查看表的详细信息。

计算机中的字符编码

字型点阵码是显示或打印汉字时所用的编码。点阵中每一个位置对应一个二进制位:该位为1,对应的位置有点;为0,则对应的位置为空白。每8个二进制位组成一个点阵码字节。点阵的规模决定了点阵码的字节数。例如,采用1616点阵,一个汉字的字型点阵码为(1616)8=32个字节。 区位码、国标码与机内码的转换方法: (1)区位码先转换成十六进制数表示 (2)(区位码的十六进制表示)+2020H=国标码; (3)国标码+8080H=机内码 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数+3 ,计算机字长为8位,转换成二进制就是00000011。如果是-3 ,就是10000011 。 那么,这里的00000011 和10000011 就是机器数。 2、真值 因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3 而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。 例:0000 0001的真值= +000 0001 = +1,1000 0001的真值= –000 0001 = –1 二. 原码, 反码, 补码的基础概念和计算方法. 在探求为何机器要使用补码之前, 让我们先了解原码, 反码和补码的概念.对于一个数, 计算机要使用一定的 编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 1. 原码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制: [+1]原 = 0000 0001 [-1]原 = 1000 0001 第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是: [1111 1111 , 0111 1111] 即 [-127 , 127] 原码是人脑最容易理解和计算的表示方式.

常用字符集介绍和编码转换原理

常用字符集介绍和编码转换原理 目录 1. GB2312编码介绍 (2) 1.1 基本信息 (2) 1.2 GB标准 (2) 1.3 分区表示 (2) 1.4 字节结构 (2) 2. 通用字符集UCS (3) 2.1 定义 (3) 2.2 概要 (3) 2.3 实现级别 (3) 2.4 与UNICODE的兼容关系 (3) 3. unicode编码介绍 (3) 3.1 基本简介 (4) 3.2 编码实现 (4) 3.2.1 编码方式 (4) 3.2.2 实现方式 (5) 4. UTF-8介绍 (5) 4.1 基本介绍 (5) 4.2 编码原理 (5) 4. 转换原理 (7)

1. GB2312编码介绍 1.1 基本信息 1.2 GB标准 GB2312或GB2312-80是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集·基本集》,又称为GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB2312。 GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。 GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。 对于人名、古汉语等方面出现的罕用字,GB2312不能处理,这导致了后来GBK及GB18030汉字字符集的出现。 1.3 分区表示 GB 2312中对所收汉字进行了―分区‖处理,每区含有94个汉字/符号。这种表示方式也称为区位码。 01-09区为特殊符号。 16-55区为一级汉字,按拼音排序。 56-87区为二级汉字,按部首/笔画排序。 10-15区及88-94区则未有编码。 举例来说,―啊‖字是GB2312之中的第一个汉字,它的区位码就是1601。 1.4 字节结构

信息交换用汉字编码字符集

〇信息交换用汉字编码字符集--基本集〈—即国家标准 GB2312-80 从1975年开始,我国为了研究汉字的使用频度,进行了大规模的字频统计工作,内容包括工业、农业、军事、科技、政治、经济、文学、艺术、教育、体育、医药卫生、天文地理、自然、化学、文字改革、考古等多方面的出版物,在数以亿计的浩瀚文献资料中,统计出实际使用的不同的汉字数为6335个,而其中有3000多个汉字的累计使用频度达到了99.9%,而另外的3000多个累计频度不到0.1%,说明了常用汉字与次常用汉字的数量不足7000个,这就为国家制定汉字库标准提供了依据。 1980年颁布了〇信息交换用汉字编码字符集—基本集〈的国标交换码,国家标准号为:GB2312-80,选入了6763个汉字,分为两级,一级字库中有3755个,是常用汉字,二级字库中有3008个,是次常用汉字;还选入了682个字符,包含有数字、一般符号、拉丁字母、日本假名、希腊字母、俄文字母、拼音符号、注音字母等。以前我国大陆的各种中文DOS版本、Windows3.1 /3.2版本,装入的字库都是国标一二级字库。 〇GB2312-80〈对 7445 个图形字符作了二进制数编码,这些图形字符是: 6763 个汉字,字体为简化字,分成两级。第一级汉字 3755 个,按拼音排序,约占近代文献汉字累计使用频度 99.9% 左右;二级汉字 3008 个,按部首、笔画排序。一、二级汉字约占累计使用频度 99.99% 以上。 202 个一般符号。其中包括 1.~20.,(1)~(20),?~?,(-)~(+) 等。 22 个数字。其中 0~9 共 10 个,‥~‰ 共 12 个。 52 个拉丁字母。其中大写字母A~Z 26 个,小写字母a~z 26 个。 169 个日文假名。其中平假名 83 个,片假名 86 个。 48 个希腊字母。其中大写字母Α~Χ24 个,小写字母α~ω24 个。 66 个俄文字母。其中大写字母А~Я33 个,小写字母а~я 33 个。 26 个汉语拼音符号,包括带声调符号和其它符号的字母。 37 个汉语注音字母,?~ㄗ。 GB2312简体中文编码表 code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F A1A0 、。? í ì ¨ 〃?—~‖ … ‘ ’ A1B0 “ ” 【】々〆〇〈〉《》「〒〓」『 A1C0 a ? ? ? ?  ̄ ? ? ? ? ‵ ? ? ? ? ※ A1D0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? A1E0 ? ? ? ? ? ? ? $¤ ??? § ? ? ? A1F0 ? ? ? ? ? ? ? ? ? ? ″ ? ′ ? 』 code +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F A2A0 ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ A2B0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

字符集与编码

字符集与编码 一.字符集与编码之间的关系 1.为了在计算机中存储与处理,必须对字符进行数字化编码。 2.字符集规定了包含哪些字符,每个字符的值是什么 3.编码规定了对于这些值,如何存储 4.有些标准同时规定了字符集及其编码 如:目前使用最广泛的西文字符集及其编码是ASCII 字符集和ASCII码(ASCII是American Standard Code for Information Interchange的缩写),它同时也被国际标准化组织(International Organization for Standardization, ISO)批准为国际标准 5.有些标准同一个字符集可以有多种编码格式 二.字符集及编码 1.SBCS (single byte character set) 1.1 ASCII (1).7位编码,范围0x00-0x7F (2).码值32-127(0x20-0x7F) (3).0x00-0x1F 之间的为控制字符,每个字符有一个缩写的名字 (4).数字,大写字母,小写字母的编码都是连续的 目前使用最广泛的西文字符集及其编码是 ASCII 字符集和 ASCII 码( ASCII 是American Standard Code for Information Interchange 的缩写),它同时也被国际标准化组织( International Organization for Standardization, ISO )批准为国际标准。 基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括常用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码,对应的 ISO 标准为 ISO646 标准。下表展示了基本 ASCII 字符集及其编码: 字母和数字的 ASCII 码的记忆是非常简单的。我们只要记住了一个字母或数字的ASCII 码(例如记住 A 为 65 , 0 的 ASCII 码为 48 ),知道相应的大小写字母之间差 32 ,就可以推算出其余字母、数字的 ASCII 码。 虽然标准 ASCII 码是 7 位编码,但由于计算机基本处理单位为字节( 1byte = 8bit ),所以一般仍以一个字节来存放一个 ASCII 字符。每一个字节中多余出来的一位(最高位)在计算机内部通常保持为 0 (在数据传输时可用作奇偶校验位)。 由于标准 ASCII 字符集字符数目有限,在实际应用中往往无法满足要求。为此,国际标准化组织又制定了 ISO2022 标准,它规定了在保持与 ISO646 兼容的前提下将ASCII 字符集扩充为 8 位代码的统一方法。 ISO 陆续制定了一批适用于不同地区的扩充 ASCII 字符集,每种扩充 ASCII 字符集分别可以扩充 128 个字符,这些扩充字符

查看Oracle字符集及如何修改字符集

查看Oracle字符集及如何修改字符集 文章分类:数据库 一、什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。 影响oracle数据库字符集最重要的参数是NLS_LANG参数。 它的格式如下: NLS_LANG = language_territory.charset 它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。 其中: Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK 从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。 所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。 二.查看数据库字符集 这涉及三方面的字符集, 一是oracel server端的字符集; 二是oracle client端的字符集; 三是dmp文件的字符集。 在做数据导入的时候,需要这三个字符集都一致才能正确导入。 1、查询oracle server端的字符集 有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种: SQL>select userenv(‘language’) from dua l; 结果类似如下:AMERICAN _ AMERICA. ZHS16GBK 2、如何查询dmp文件的字符集 用oracle的exp工具导出的dmp文件也包含了字符集信息,dmp文件的第2和第3个字节记录了dmp文件的字符集。如果dmp文件不大,比如只有几M或几十M,可以用UltraEdit 打开(16进制方式),看第2第3个字节的内容,如0354,然后用以下SQL查出它对应的字符集: SQL> select nls_charset_name(to_number('0354','xxxx')) from dual; ZHS16GBK 如果dmp文件很大,比如有2G以上(这也是最常见的情况),用文本编辑器打开很慢或者完全打不开,可以用以下命令(在unix主机上): catexp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6 然后用上述SQL也可以得到它对应的字符集。 3、查询oracle client端的字符集 这个比较简单。 在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: setnls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变量。

计算机中最常用的字符信息编码是(

练习题 第1章 1-1选择: 1.计算机中最常用的字符信息编码是() A ASCII B BCD码 C 余3码 D 循环码 2.要MCS-51系统中,若晶振频率8MHz,一个机器周期等于( ) μs A 1.5 B 3 C 1 D 0.5 3.MCS-51的时钟最高频率是( ). A 12MHz B 6 MHz C 8 MHz D 10 MHz 4.以下不是构成的控制器部件(): A 程序计数器、B指令寄存器、C指令译码器、D存储器 5.以下不是构成单片机的部件() A 微处理器(CPU)、B存储器C接口适配器(I\O接口电路) D 打印机6.下列不是单片机总线是() A 地址总线 B 控制总线 C 数据总线 D 输出总线 7.-49D的二进制补码为.( ) A 11101111 B 11101101 C 0001000 D 11101100 8.十进制29的二进制表示为原码() A 11100010 B 10101111 C 00011101 D 00001111 9. 十进制0.625转换成二进制数是() A 0.101 B 0.111 C 0.110 D 0.100 10 选出不是计算机中常作的码制是() A 原码 B 反码C补码 D ASCII 1-2填空 1.计算机中常用的码制有。 2.十进制29的二进制表示为。 3.十进制数-29的8位补码表示为. 。 4.单片微型机、、三部分组成. 5.若不使用MCS-51片内存器引脚必须接地. 6. 是计算机与外部世界交换信息的载体. 7.十进制数-47用8位二进制补码表示为. 。 8.-49D的二进制补码为. 。 9.计算机中最常用的字符信息编码是。 10.计算机中的数称为机器数,它的实际值叫。 1-3判断 1.我们所说的计算机实质上是计算机的硬件系统与软件系统的总称。() 2.MCS-51上电复位时,SBUF=00H。()。SBUF不定。 3.使用可编程接口必须处始化。()。 4.8155的复位引脚可与89C51的复位引脚直接相连。()

信息编码和其在计算机中的运用

第2章信息编码及在计算机中的表示 2.1 信息的数字化编码 编码:是用来将信息从一种形式转变为另一种形式的符号系统,通常选用少量最简单的基本符号和一定的组合规则,以表示出大量复杂多样的信息。 信息的数字化编码:是指用“0”或“1”这种量最少、最简单的二进制数码,并选用一定的组合规则,来表示数据、文字、声音、图形和图像等各种复杂的信息。 计算机中采用的是二进制数码,为什么?(重点) 2.2 进位计数制及其相互转换 2.2.1 进位计数制 数制中的三个基本名词术语: 数码:用不同的数字符号来表示一种数制的 数值,这些数字符号称为“数码”。 基:数制所使用的数码个数称为“基”。 权:某数制各位所具有的值称为“权”。 1.十进制数(Decimal System) 数码:0、1、…… 8、9 基:10(逢十进一,借一当十) 权:以10为底的幂 任何一个十进制数DnDn-1…D1D0D-1…,可以表示成按权展开的多项式: Dn×10n+Dn-1×10n-1+…+D1×101+D0×100+D-1×10-1+…+D-m×10-m 例如:1234.5的按权展开多项为:1234.5=1×103+2×102+3×101+4×100+5×10-1 ⒉二进制数 二进制(Binary System) 数码: 0和1 基:2 权:以2为底的幂 任何一个二进制数BnBn-1…B1B0B-1…B-m,可以表示成按权展开的多项式: Bn×2n+Bn-1×2n-1+…+B1×21+B0×20+B-1×2-1+…+B(-m+1)×2-(m-1)+B-m ×2-m 例如: 1101.01的按权展开多项为: 1101.01=1×23+1×22+0×21+1×20+0×2-1+1×2-2 ⒊八进制数 八进制数(Octave System) 数码: 0、1、…… 6、7 基: 8 权:以8为底的幂

《统一的中日韩汉字编码字符集》(CJK)字根系统研究

《统一的中日韩汉字编码字符集》(CJK)字根系统研究 《统一的中日韩汉字编码字符集》(CJK)作为新的汉字信息处理国际标准,使汉字信息处理向国际化方向迈出了重要的一步,对汉字字形的定量定性研究也提出了更高的要求。在此基础上,依靠计算机字形技术的支持,采用字根分解与合成的方法,有可能表示出CJK的全部字符从而实现其无字库化处理。因此,研究CJK字根系2统,对于CJK的工程应用具有重要作用。 中日韩汉字字形有别而音义互异,但都是可分析的文字,其基本构形单位都是笔画或字根,因此,字根分析法对其同样适用。本文认为,要得出一个较为科学的CJK字根系统,在理论和实践上必须着重解决两个问题,一个是笔画与字根的分野即单笔字根的问题,另一个就是字根变体的问题。本文主要分析了CJK的单笔字根和字根变体,并对统计得出的CJK676个字根的有关数据进行了系统的分析,希望能为CJK的相关研究提供参考。 一、CJK的单笔字根 (一)为什么要提出"单笔字根" 字根是汉字字符的直接构形成分,是可以独立运用的最小构形单位。一般说来,字根包含两个以上笔画,但当单一笔画与字根直接参与汉字字符构形时,这一笔画由于具备了字根的价值和功能而上升到字根层级,称为"单笔字根"。提出这一概念主要基于以下考虑: 1、汉字字符的构形成分中确实存在许多相对独立的单一笔画,归入邻近的任一字根都不合适,CJK中就有400多个字符包含这种笔画。如果说汉字字符都是由作为笔画组合体的字根构成的,显然不符合事实;如果说汉字字符是由字根与笔画组成的,固然也未尝不可,但这样就难以清晰地体现字符构形的层级性,故"单笔字根"的提出有其现实的必要性。 2、CJK字符集收入了"一丨丶丿乀乁乙乚乛亅"十个单笔画的字符,如果不引入"单笔字根"的概念,则这十个字符无法进行字根分析。 3、适当拆出字符中的单笔字根,可以大大简化字根系统。 (二)如何析出单笔字根 笔画与字根毕竟是不同层级的构形成分,因此单笔字根以尽量少析出为宜。我们在分析CJK单笔字根的过程中,主要采用了以下方法: 1、某一单笔画如果与字符中其它笔画处于相交或相接的关系,则不能析为单笔字根。如"子、孑、孓"都是由字根"了"与单笔画相交或相接而成,故不再析出单笔字根。 2、如果单笔画与字符中其它笔画均处于相离的关系,则根据以下情况处理: (1)对于点笔来说,若其与某一字根呈内聚之势,且作为整体具有构字能力,则合为一个字根,如"犬、太、刃、玉"等;反之,若作为整体无构字能力,则立点笔为单笔字根,如"乓"。这样处理可使字根系统的层级性得以体现,同时也照顾了通常的字根拆分习惯。 (2)如果某一单笔画用另一笔画或字根替换后成了另一字符,则只能析为单笔字根,如"糺"中的"乚"替换为"工"后成了另一字符"紅",因此"乚"为单笔字根。能用这种方法来判断的单笔字根在CJK单笔字根中约占24%。 (3)偏旁部首通常使用频率较高,一般作为整体进入字根系统,不再拆出单笔字根,如"纟"、"刂"、"寸"、"灬"等。 为简化字根系统,有时也需要作变通处理,如"示"中与第一横笔相邻的也不是分笔字根,但将其析出后,余部分无构字能力,为简化字根系统,"示"拆为"二、小",不涉及单笔字根问题。 (三)CJK的单笔字根统计 我们采用上述方法得出了CJK单笔字根的有关数据,详见下表: 如果把提归入横,捺归入点,竖钩归入竖,其它的归入折,则五种基本笔画在CJK中

计算机常见编码

计算机常见编码 一.有关编码的基础知识 1. 位bit 最小的单元 字节byte 机器语言的单位 1byte=8bits 1KB=1024byte 1MB=1024KB 1GB=1024MB 2. 二进制binary 八进制octal 十进制decimal 十六进制hex 3. 字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符 号,数字等。 字符集:字符集是多个符号的集合,每个字符集包含的字符个数不同。 字符编码:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一 个字符用多少字节表示等问题,则是由编码来决定的。计算机要 准确的处理各种字符集文字,需要进行字符编码,以便计算机能 够识别和存储各种文字。 二.常见字符集的编码介绍: 常见的字符集有:ASCII 字符集,GB2312 字符集,BIG5 字符集,GB18030 字符集,Unicode 字符集,下面一一介绍: 1. ASCII 字符集: 定义: 美国信息互换标准代码,是基于罗马字母表的一套电脑编码系统,主要显示 英语和一些西欧语言,是现今最通用的单字节编码系统。 包含内容: 控制字符(回车键,退格,换行键等) 可显示字符(英文大小写,阿拉伯数字,西文符号) 扩展字符集(表格符号,计算符号,希腊字母,拉丁符号) 编码方式: 第0-31 号及127 号是控制字符或通讯专用字符; 第32-126 号是字符,其中48-57 号为0-9 十个阿拉伯数字,65-90 号为26 个 大写英文字母,97-122 号为26 个英文小写字母,其余为一些标点符号,运 算符号等。 在计算机存储单元中,一个ASCII 码值占一个字节(8 个二进制位),最高位 是用作奇偶检验位。【奇偶校验是指:在代码传送的过程中,用来检验是否 出错的一种方法。】奇偶校验分为奇校验和偶校验。奇校验规定:正确的代 码一个字节中1 的个数必须是奇数,若非奇数,则在最高位添1;偶校验规 定:正确的代码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位添 1。

各种文字编码简介+常见的编码都有介绍

各种文字编码简介 ASCII ASCII码是7位编码,编码范围是0×00-0×7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0×00-0×20和0×7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码,为了传输中文邮件必须使用BASE64或者其他编码方式。 GB2312 GB2312是基于区位码设计的,区位码把编码表分为94个区,每个区对应94个位,每个字符的区号和位号组合起来就是该汉字的区位码。区位码一般用10进制数来表示,如1601就表示16区1位,对应的字符是“啊”。在区位码的区号和位号上分别加上0xA0就得到了GB2312编码。 区位码中01-09区是符号、数字区,16-87区是汉字区,10-15和88-94是未定义的空白区。它将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列。一级汉字是按照拼音排序的,这个就可以得到某个拼音在一级汉字区位中的范围,很多根据汉字可以得到拼音的程序就是根据这个原理编写的。 GB2312字符集中除常用简体汉字字符外还包括希腊字母、日文平假名及片假名字母、俄语西里尔字母等字符,未收录繁体中文汉字和一些生僻字。可以用繁体汉字测试某些系统是不是只支持GB2312编码。

GB2312的编码范围是0xA1A1-0×7E7E,去掉未定义的区域之后可以理解为实际编码范围是 0xA1A1-0xF7FE。 EUC-CN可以理解为GB2312的别名,和GB2312完全相同。 区位码更应该认为是字符集的定义,定义了所收录的字符和字符位置,而GB2312及EUC-CN是实际计算机环境中支持这种字符集的编码。HZ和ISO-2022-CN是对应区位码字符集的另外两种编码,都是用7位编码空间来支持汉字。区位码和GB2312编码的关系有点像 Unicode和UTF-8。GBK GBK编码是GB2312编码的超集,向下完全兼容GB2312,同时GBK收录了Unicode基本多文种平面中的所有CJK汉字。同 GB2312一样,GBK也支持希腊字母、日文假名字母、俄语字母等字符,但不支持韩语中的表音字符(非汉字字符)。GBK还收录了GB2312不包含的汉字部首符号、竖排标点符号等字符。 GBK的整体编码范围是为0×8140-0xFEFE,不包括低字节是0×7F的组合。高字节范围是 0×81-0xFE,低字节范围是0×40-7E和0×80-0xFE。 低字节是0×40-0×7E的GBK字符有一定特殊性,因为这些字符占用了ASCII码的位置,这样会给一些系统带来麻烦。 有些系统中用0×40-0×7E中的字符(如“|”)做特殊符号,在定位这些符号时又没有判断这些符号是不是属于某个 GBK字符的低字节,这样就会造成错误判断。在支持GB2312的环境下就不存在这个问题。需要注意的是支持GBK的环境中小于0×80的某个字节未必就是ASCII符号;另外就是

Oracle 导入导出字符集乱码问题

Oracle 导入导出字符集乱码问题 导出/导入与字符集 进行数据的导入导出时,我们要注意关于字符集的问题。在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。 我们首先需要查看这四个字符集参数。 查看数据库的字符集的信息: SQL> select * from nls_database_parameters; PARAMETER VALUE ------------------------------ -------------------------------------------------------------------------------- NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA NLS_CURRENCY $ NLS_ISO_CURRENCY AMERICA NLS_NUMERIC_CHARACTERS ., NLS_CHARACTERSET ZHS16GBK NLS_CALENDAR GREGORIAN NLS_DATE_FORMAT DD-MON-RR NLS_DATE_LANGUAGE AMERICAN NLS_SORT BINARY NLS_TIME_FORMAT HH.MI.SSXFF AM NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM

NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM NLS_DUAL_CURRENCY $ NLS_COMP BINARY NLS_NCHAR_CHARACTERSET ZHS16GBK NLS_RDBMS_VERSION 8.1.7.4.1 NLS_CHARACTERSET:ZHS16GBK是当前数据库的字符集。 我的windows oracle编码为: NLS_NCHAR_CHARACTERSET AL16UTF16 NLS_CHARACTERSET ZHS16GBK 我们再来查看客户端的字符集信息: 客户端字符集的参数NLS_LANG=_< territory >. language:指定oracle消息使用的语言,日期中日和月的显示。 Territory:指定货币和数字的格式,地区和计算星期及日期的习惯。 Characterset:控制客户端应用程序使用的字符集。通常设置或等于客户端的代码页。或者对于unicode应用设为UTF8。 在windows中,查询和修改NLS_LANG可在注册表中进行: HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOMExx\ xx指存在多个Oracle_HOME时的系统编号。 我这里的windows默认为: windows Client: NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 在Linux redhat5中:

编码字符集标准及分类研究_谢谦

中 文 信 息 学 报 第20卷第5期 J OURNAL OF CH I NESE I NF OR MATI O N P ROCESSI NG V ol.20N o.5文章编号:1003-0077(2006)05-0083-08 编码字符集标准及分类研究 谢 谦1,2,芮建武1,吴 健1 (1.中国科学院软件研究所开放系统与中文信息处理中心,北京 100080;2.河南大学计算机与 信息工程学院,河南开封 475001) 摘要:编码字符集标准是计算机处理文字信息的基础,本文提出了编码字符集三元组抽象,对现有编码字符集标准进行了简单回顾和总结,深入剖析了影响巨大的ISO2022标准及其派生标准,对ISO2022编码机制应用于多语言环境的局限性进行了探讨,阐明了使用通用编码字符集UCS的必要性,并对其进行了分析。探讨了现有编码分类方法存在的问题,引入了一种对编码字符集以及实现方法进行分类的新方法,使用该方法对现有标准进行了归类;最后对汉字字符集相关的国家标准进行了分析评介。 关键词:计算机应用;中文信息处理;编码字符集 中图分类号:TP391 文献标识码:A Research on Coded Character Set Standards and C lassification X I E Q ian1,2,RU I Jian-wu1,W U Jian1 (1.Open Syste m and Ch i nes e Infor m ati on Processi ng Cen ter,Institute of Soft w are,C h i nes e A cade m y of S ci en ces,B eiji ng100080, Ch i na;2.S chool of Compu t er and In for m ation Engineeri ng,H enan Un i versity,Kaifeng,H enan475001,Ch ina) Ab strac t:Coded character se t standa rd are t he base s of t he co m puter t ex t infor m ati on processing.In t his pape r,a3-turples m ode l is proposed t o descibe the coded character se.t The ex isting code standards are reviewed and su mma-rized.A nd t he ISO2022and it's deriv i ng standards are ana l y zed in de tail;incl uding the li m ita tion o f u tilizi ng IS O 2022in m ultili ngua l env iron m en.t N ecessit y o f foundi ng UCS(U niversa lCha racter Se t)is present ed,a long w it h an outline ana l y sis o f UCS.A ft e r eva l uating current c l assifica tion m e t hods o f coded character set standa rds,a new m eth-od is produced w ith applica tion i n ca talogu i ng existing standa rds.W e c l o se ou r paper w ith a brief ana l ysis of i m po r-tan t Chinese na tiona l st andards on Han character se.t K ey word s:compu t e r applicati on;Ch i nese inf o r m ati on processing;coded character se t 计算机应用从单纯的科学计算转向信息处理,是引发二十世纪信息革命的里程碑事件,而支撑这一转变的重要基础就是字符编码;通过制定字符编码标准,在人能理解的文字信息与计算机内部表达之间建立了一个基本的沟通桥梁,直到今天,基于文字的交互途径仍然是最主要的人机界面。正如Unicode标准中所言[1],“对计算机软件系统而言,字符编码就像螺钉和螺母———虽然微小,却以各种方式被普遍使用。” 收稿日期:2005-07-08 定稿日期:2006-05-22 基金项目:国家863计划资助项目(2003AA1Z2110);中国科学院知识创新工程资助项目(KGCX2-S W-504) 作者简介:谢谦(1968—),男,博士生,主要研究领域为系统软件国际化,X W i ndow系统,L inux标准化.

Web应用中的中文问题以及数据表乱码

一、Web应用中的中文问题: Jsp页面编码:<%@page pageEncoding=“utf-8”%> 告诉jsp引擎,在将jsp转成servlet源文件时,该jsp文件的编码是什么。<%@page contentType=“text/html;charset=utf-8”%>相当于 Servlet中的response.setContextType()。即设置相应头。 浏览器会依据该编码来显示页面,保持jsp文件时,其真正的编码应该与设置的一致。 Html: 保存html文件时,其真正的编码应该与设置的一致。 Servlet: 获取请求参数时: request.setCharacterEncoding("utf-8"); 如果servlet要直接输出一些信息: response.setContentType("text/html;charset=utf-8"); 数据库:mysql 设置数据库编码: Create database servletdb(数据库名) default character set utf8; 如果数据库已经建好了,可以使用: Alter database servletdb(数据库名) default character set utf8; (修改编码) set names gbk; 二、工具中修改编码方式: 1、改变 Eclipse 或者 MyEclipse 新建文件的默认编码 eclipse 的: window-->preferences-->General-->ContentType 改成 utf-8 。 myEclipse 的 : window-->preferences-->myEclipse-files and editors-jsp encoding 设成ISO10646/UTF-8. 2、 eclipse 和java文件编码设定 Window-->preferences-->General-->Workspace Text file encoding 改为UTF-8 。方便项目移植到linux下编写。 3、项目编码 这里遇到的问题是,眼前的项目已经编写了大部分了,然而,只想接下来的新建的文件的编码是UTF-8 ,而以前的不变。那么右键自己的项目

相关文档
最新文档