第10章:字符集支持
- 格式:doc
- 大小:288.50 KB
- 文档页数:38
PDF 规范第六版Adobe®便携式文件格式版本1。
72006年11月Adobe系统公司目录目录 (2)前言 (7)第1章介绍 (7)1.1 关于本书 (7)1.2 PDF 1.7功能简介 (9)1。
3 相关文献 (13)1。
4 版权说明 (13)第2章概述 (14)2.1 图像模型 (14)2.2 其他通用特性 (18)2.3 创建PDF (22)2.4 PDF和PostScript语言 (24)第3章语法 (25)3.1 词汇约定 (27)3.2 对象 (29)3。
3 过滤器 (43)3。
4 文件结构 (53)3.5 加密 (81)3.6 文档结构 (82)3。
7 内容流和资源 (85)3。
8 常用数据结构 (85)3.9 函数 (86)3。
10 文件规范 (86)第4章图形 (88)4.1 图形对象 (88)4.2 坐标系 (88)4。
3 图形状态 (88)4。
4 路径构造与绘制 (90)4。
5 颜色空间 (90)4.6 底纹 (92)4.7 外部对象 (93)4。
8 图像 (93)4.9 XObjects格式 (94)4。
10 可选内容 (94)第5章文本 (95)5.1 字体的组织和使用 (95)5.2 文本状态参数和操作符 (95)5.3 文本对象 (97)5。
4 字体数据结构介绍 (97)5。
5 简单字体 (97)5。
6 复杂字体 (98)5。
7 字体描述符 (98)5。
8 嵌入式字体程序 (99)5。
9 文本内容提取 (99)第6章渲染 (99)6。
1 CID-Based颜色到设备颜色 (99)6。
2 设备颜色空间之间的转换 (99)6.3 传递函数 (99)6.4 半色调 (99)6。
5 扫描转换细节 (100)第7章透明度 (100)7。
1 透明度概述 (100)7.2 基本合成计算 (101)7。
3 透明度组 (101)7。
4 软掩码 (102)7。
5 指定PDF中的透明度 (102)7.6 颜色空间和渲染问题 (103)第8章交互功能 (103)8。
- 标准-PS 3.10-2001 Digital Imaging and Communications in Medicine (DICOM)Part 10: 便于介质交换的介质存储和文件格式美国电器制造商学会出版1300 N. 17th StreetRosslyn, Virginia 22209 USA© Copyright 2001 by the National Electrical Manufacturers Association. All rights including translation into other languages, reserved under the Universal Copyright Convention, the Berne Convention or the Protection of Literacy and Artistic Works, and the International and Pan American Copyright Conventions.PS 3.10-2001i目录概述 (i)前言 (iii)1 应用软件的范畴与领域 (1)2 参考文献...................................................................................... .... .... . (2)2.1 标准化参考文献 (2)3 定义 (3)3.1 参考模式定义..................................................................................... (3)3.2 业务惯例............................................................................... ........ .. (3)3.3 图像业务定义............................................................................. ........ (3)3.4 DICOM 介绍和概括定义...................................................... ........ .. (4)3.5 DICOM 信息体定义.................................................................... ........ . (4)3.6 DICOM 数据结构和编码定义.................................................. ........ .. (4)3.7 DICOM 信息交换装置定义...................................................................... ..43.8 DICOM 介质存储和文件格式定义............................................... ........ . (4)4 符号和缩略词 (5)5 惯例 (6)6 介质存储的DICOM 模式 (7)6.1 一般DICOM 通讯模式..................................................................... .. (7)6.2 DICOM 介质存储模式 (7)6.2.1 物质介质层 (8)6.2.2 介质格式层 (9)6.2.3 DICOM数据格式层 (9)6.2.3.1 DICOM SOP类 (9)6.2.3.2 DICOM 文件格式概念.................................................................... .. 106.2.3.3 DICOM 医学信息录................................................................ ........ . 106.2.4 DICOM 介质存储应用简介................................................................. ..106.2.5 介质存储和DICOM 标准组织.................................................... .. (11)7 DICOM文件格式 (12)7.1 DICOM 文件后信息 (13)7.2 数据特定封装 (15)7.3 文件管理信息支持........................................................... ........ ........ . (15)8 DICOM文件室 (16)8.1文件组 (16)8.2文件标识部分 (17)8.3 文件管理任务和业务................................................................. ........ (18)8.4 对文件目录的访问 (19)8.5 字符集 (20)8.6 存储的DICOM 文件列表地址 (20)9 统一规定...................................................................................................... .21 附录:DICOM文件列表目录例(资讯).......................................................... .. (23)A.1 简要地址目录实例....................................................................... ........ . 23A.2 具有多参考文件的DICOM文件目录实例........... ........ ........ ........ .. (27)附录:B 属性标记和UIDs索引(资讯)............................................................... . (28)PS 3.10-2001iii前言美国放射科学院(ACR)和国家电力厂商协会(NEMA)成立一个联合会来开发DICOM医学标准。
各个字符集关系字符集是计算机中用来表示和存储字符的编码方案。
不同的字符集拥有不同的字符映射表,即将字符映射到特定的二进制代码上。
在计算机科学中,有许多不同的字符集,如ASCII、Unicode、UTF-8等。
本文将详细介绍各个字符集之间的关系。
首先,ASCII(美国标准信息交换码)是最早的字符集之一。
它使用7位二进制代码来表示128个字符,包括英文字母、数字和特殊字符。
ASCII标准定义了每个字符的二进制代码和对应的显示符号。
ASCII编码被广泛应用于美国和英语系国家。
然而,ASCII的局限性在于它只能表示英文字符和一些常见的特殊符号,无法表示其他国家的字符集。
为了解决这个问题,ISO(国际标准化组织)提出了ISO-8859字符集系列。
ISO-8859字符集通过扩展ASCII,使用8位二进制代码表示256个字符。
ISO-8859字符集包括多种变种,如ISO-8859-1(Latin-1)、ISO-8859-2(Latin-2)等,每个变种针对不同的语言和地区。
然而,随着国际化的发展,ISO-8859字符集仍然无法满足全球多语言的需求。
为此,国际化组织提出了Unicode字符集。
Unicode字符集旨在成为全球统一的字符编码方案,能够包含世界上所有的字符。
Unicode使用16位二进制代码来表示字符,它定义了每个字符的唯一编号,称为码点(code point)。
Unicode的码点范围非常广阔,可以涵盖几乎所有的字符。
然而,使用16位二进制代码会造成存储和传输的浪费。
为此,发展了多种Unicode的字符编码方案,如UTF-8、UTF-16和UTF-32。
UTF-8是一种变长的字符编码方案,使用8位二进制代码表示字符。
UTF-8的编码规则如下:-对于ASCII字符,使用7位二进制代码与ASCII完全兼容。
-对于非ASCII字符,使用多个字节表示。
编码的首字节是非零的,使用剩余的7位二进制代码来表示字符。
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
EDIEDI标准概述EDI标准主要提供:语法规则、数据结构定义、编辑规则和协定、已出版的公开⽂件。
⽬前国际上流⾏的EDI标准是由联合国欧洲经济委员会(UN/ECE)制订颁布的《⾏政、商业和运输⽤电⼦数据交换规则》(EDIFACT),以及美国国家标准局特命标准化委员会第⼗⼆⼯作组制订的ANSI X.12。
从内容上看,这两个标准都包括了EDI 标准的三要素--数据元、数据段和标准报⽂格式。
EDIFACT标准包括⼀系列涉及的电⼦数据交换的标准、指南和规则。
联合国推荐的EDIFACT标准由U N/ECE印刷为"联合国贸易数据交换指南"(UNEDID),它包括10个部分:--EDIFACT语法规则(ISO9735);--报⽂设计指南;--语法应⽤指南;--EDIFACT数据元⽬录(EDED);--EDIFACT代码表(EDCL);--EDIFACT复合数据元⽬录(EDCD);--EDIFACT段⽬录(EDSD);--EDIFACT标准报⽂格式(EDMD);--贸易数据交换格式构成总览(UNCID);--适当的说明解释。
以下就分别对EDIFACT国际标准作⼀简单介绍。
1.EDIFACT语法规则(ISO9735)EDIFACT语法规则于1987年3⽉制订完成,并于当年9⽉被ISO接受成为国际标准,标准代号为9735,此语法规则⼜称作ISO9735。
ISO9735包括10个部分和3个附录,它以简略形式表述"⽤户格式化的数据交换的应⽤实施"的语法规则。
其中,第⼀部分说明了标准的适⽤范围;第⼆部分罗列了该标准的相关标准;第三部分说明在此标准中⽤到的名词的定义;第四部分说明了EDIFACT标准报⽂中⽤到字符的集合的级别的划分;第五部分分级列出EDIFACT标准的字符集;第六部分定义了EDIFACT 标准报⽂的结构;第七部分涉及把单证转换成EDIFACT标准报⽂过程中对EDIFACT标准报⽂数据元的压缩;第⼋部分说明了设计EDIFACT报⽂时段重复的可能性;第九部分是关于设计EDIFACT报⽂时段的嵌套;第⼗部分是数字型数据元使⽤的规定。
AT指令手册参考一些其它产品指令改写版权上海龙兰新SH-LLXDZ前言本文档以针对GSM TC35,TC35i,MC35i,MC39i,M22,SIM300模块,介绍了AT命令集及其基本的使用方法所有的AT命令均逐一列举并附有使用的例子对于其他类型的模块若有不同的操作请来信说明以便补充和修改另外为方便用户查找对AT命令还作了分类第2章介绍一般的一些AT命令第3章介绍呼叫控制方面的AT命令第4章介绍网络业务命令第5章介绍与安全性有关的命令第6章介绍电话本命令第7章介绍短消息命令第8章介绍补充业务命令第9章介绍数据业务命令第10章介绍与传真有关的命令第11章介绍基于V.24和V.25的命令注意用户在使用模块前应仔细阅读本手册在模块上使用AT命令必须严格以本文档为参考我们不负责因用户随意使用AT命令造成的任何损坏另外使用前应先确保模块连接配置正确无误1简介1.1名词术语1.TE Terminal Equipment终端设备与DTE等价比如一个计算机它是和信息网络的一端相接的可提供必要功能的设备这些功能使得用户通过接入协议能接入网络如发送信息和接收信息也可指由线路电路信道数据链路的终端或起点组成的设备2.TA Terminal Adapter终端适配器与DCE等价提供终端适配功能的物理实体是一种接口设备3.DCE Data Circuit terminating Equipment数据电路终接设备一种接口设备在线路之间进行代码或信号转换同数据终端设备实现接口能够建立保持和释放数据终端设备与数据传输线之间的连接4.DTE Data Terminal Equipment数据终端设备它具有向计算机输入和接收计算机输出的能力与数据通信线路连接的通信控制能力以及一定的数据处理能力5.ME Mobile Equipment移动设备比如GSM话机就属于ME移动台中的一种发射机或接收机或发射机与接收机二者的组合6.MS Mobile Station移动台在移动通信业务中可以在移动中使用的通信站包括车船载台便携台和手持机1.2AT命令简介AT即Attention AT命令集是从TETerminal Equipment或DTEData Terminal Equipment向TATerminal Adapter或DCEData Circuit Terminating Equipment发送的通过TATE发送AT命令来控制MSMobile Station 的功能与GSM网络业务进行交互用户可以通过AT命令进行呼叫短信电话本数据业务补充业务传真等方面的控制2AT命令祥解2.1一般命令2.1.1AT+CSCS选择TE字符集该命令通知ME选择的字符集ME可以对输入或显示的字符进行转化此命令用于发送读或写短消息命令AT+CSCS="GSM"GSM缺省字符集响应OK命令有效命令AT+CSCS="UCS2"PC字符集编码UCS2响应OK命令有效2.1.2AT+CIMI请求IMSI International Mobile Subscriber Identity该命令读取SIM卡的IMSI国际移动用户识别号读IMSI之前可能需要输入PIN码命令AT+CIMI读取IMSI响应46002921600913IMSI值15位数字2.1.3AT+GCAP性能列表该命令提供性能列表2.1.4A/重复刚才的命令重复刚才执行过的命令A/命令本身不能重复,TC35试不行,不知道是不是AT 指令重复2.1.5AT^SMSO 关闭电源该命令停止GSM 协议栈和物理层的工作(TC35/TC35i)2.1.6AT+CMEE 报告ME 错误该命令设置是否使用结果码+CME ERROR :<xxx>或+CMS ERROR :<xxx>来代替简单的ERROR2.2呼叫控制命令2.2.1ATD 拨号命令行格式ATD <Numb>[I /i][G/g][;]ATD><PhbStr>[I /i][G/g][;]ATD>mem <n>[I /i][G/g][;]ATD><PhbIndex>[I /i][G/g][;]命令AT+GCAP获取性能列表响应+GCAP:+CGSM +FCLASS OK支持GSM 命令和FAX 命令命令AT^SMSO 关闭响应^SMSO:MS OFF OK正常退出网络并关机命令AT+CMEE=0禁止ME 错误报告使用ERROR响应OK AT+CMEE=1使用+CME ERROR :<xxx>或+CMS ERROR :<xxx>响应OKATD <GSM sequence>ATD 命令用于建立会话数据业务或传真业务也可以控制补充业务对于数据或传真业务用户向模块发送如下ASCII 字符在此命令之前用AT+CBST 命令选择载波类型ATD<nb><nb>为被叫号码对于语音电话用户向模块发送如下ASCII 字符在此命令之前用AT+CBST 命令选择载波类型或使用缺省值ATD<nb><nb>为被叫号码注意对于国际号码号码前需加+如ATD+33146290800对ATD 命令的响应如下表所示从电话本存储在SIM 卡上直接拨号采用以下的命令行格式ATD><index>呼叫存储在电话本位置<index>处的号码ATD>mem <index>mem 是电话本存储区由AT+CPBS 来选择在当前有一个电话的情况下如果要发起对外的呼叫应先将当前的电话挂起再建立连接ATD10086;OKAT+CLCC+CLCC:1,0,0,0,0,"10086",129OK详细结果代码数字化结果代码说明OK呼叫成功仅对语音呼叫CONNECT<speed>10,11,12,13,14,15呼叫成功对数据电话<speed>采用模块协商后的值BUSY 7被叫方忙NO ANSWER 8固定连接时间到后未检测到挂起信号NO CARRIER3呼叫建立失败或远端用户已释放命令ATD*#21#查询呼叫转移状态响应+CCFC:0,7没有呼叫转移命令ATD**61*+33146290800**25#登记无应答呼叫转移无应答时间定为25秒响应OK 命令已执行命令ATD*2#呼叫序列错误响应+CME ERROR 32.2.2ATH 呼叫挂起用户使用ATH(或ATH0)来切断与远端用户的连接在有多个电话的情况下所有的电话都释放包括正在通话挂起和等待的电话2.2.3ATA 呼叫应答当命令收到呼叫来电设置RingInd 信号并向用户发送RING 然后等待用户应答呼叫2.2.4AT+CEER 扩展错误报告如果呼叫建立发起或应答失败该命令报告呼叫释放的原因2.2.5AT+VTS,AT+VTS,AT+VTDAT+VTD DTMF 信号模块允许用户发送DTMF 拨号音(只有在通话中才能使用)定义拨号音长度使用AT+VTD=<n><n>*100即拨号音的长度以ms 为单位如果n<4拨号音长度为300ms 缺省值发送DTMF 拨号音必须当前有正在通话的电话使用AT+VTS=<Tone><Tone>由09*,#,A,B,C,D 中的字符构成响应RING 有来电命令ATA 应答此来电响应OK 接受呼叫命令ATH 挂断电话响应NO CARRIER电话已切断命令ATD123456789发起语音呼叫响应NO CARRIER 呼叫建立失败命令AT+CEER查询失败原因响应+CEER :Error <xxx>OK<xxx>为错误号在GSM 协议04.08中定义命令AT+VTD=6定义拨号音长度为600ms 响应OK 命令有效命令AT+VTD=0设成缺省值响应OK命令AT+VTS=A例如如果要发送拨号音序列13#用户应如下操作AT+VTS=1+VTS=3+VTS=#atD10086;OK at+vtd=1OK at+vts=1OK at+clcc+CLCC:1,0,0,0,0,"10086",129OK2.2.6ATS0自动应答S0参数控制自动应答(只用于数据拨号,语音不成立)响应OK AT+VTS=11+CME ERROR:4拨号音有错命令AT+VTS=4+CME ERROR:3没有连接命令ATS0=22声振铃后自动应答响应OK ATS0?查询当前值响应002OK 通常3个字符前导0命令ATS0=0无自动应答响应OK命令有效其他的S 参数S6,S7,S8不执行2.3网络业务命令2.3.1AT+CSQ 信号质量该命令用来检测接收信号的强度指示<rssi>和信道误码率<ber>无论有没有插入SIM 卡<rssi>:0:-113dBm 1:-111dBm2...30:-109到-53dBm 31:-51dBm99:未知或不可检测<ber>:0...7:参考GSM 05.08中的RXQUAL 值99:未知或不可检测AT+CSQ +CSQ:19,99OK2.3.2AT+COPS 运营商选择选择运营商有3种可能.移动台进入manual 手动模式想查找提供给用户的运营商如果查找正确并注册成功移动台处于idle 状态.移动台进入automatic 自动模式想查找本地运营商如果查找正确并注册成功移动台处于idle 状态如果不成功移动台自动搜索其他的网络.移动台进入manual/automatic 手动/自动模式想查找提供给用户的运营商类似处于manual 模式如果不成功进入automatic 模式读取命令返回当前模式和选择的运营商要想选择并注册网络运营商发送如下的命令行AT+COPS=<mode>,[<format>[,<oper>]]对AT+COPS=<mode>命令的可能的响应命令AT+CSQ+CSQ:<rssi>,<ber>OK<rssi>和<ber>的值如上定义OK (选择全部的网络业务)+CME ERROR:30(没有网络业务)+CME ERROR:32(网络不允许?只允许紧急电话)+CME ERROR:3(电话期间不允许此操作)+CME ERROR:4(错误参数)对AT+COPS?命令的响应语法+COPS:<mode>[,<format>,<oper>]对AT+COPS=?命令的响应语法+COPS:[列举所支持的<stat>,<oper>字母数字型数字型]命令行参数值如下定义<mode>:0:自动缺省值1:手动3:用于设置<format>域对于读取命令AT+COPS?4:手动/自动要有<oper>域如果手动选择失败进入自动模式<format><oper>域的格式0长字母数字格式最多16个字符1短字母数字格式最多8个字符2数字格式缺省值<stat><oper>的状态0:未知1:可用2:当前正在使用3:禁止<oper>运营商标识2.3.3AT+CREG 网络注册该命令用于获知移动台的注册情况命令语法:AT+CREG=<mode>响应格式+CREG:<mode>,<stat>[,<lac>,<ci>]仅对AT+CREG?命令而言命令AT+COPS?+COPS:0OK未找到网络命令AT+COPS?+COPS:0,0,"China Mobile "OK中国移动<mode>0禁止网络注册主动提供结果码缺省值1采用网络注册结果码+CREG:<stat>2采用网络注册主动提供结果码+CREG:<stat>,<lac>,<ci> <stat>0未注册ME当前没有搜寻新的运营商1已注册本地网络运营商2未注册ME正在搜寻新的运营商3注册拒绝4未知5已注册或处于漫游区(部分本地卡也会出现5)<lac>字符型位置区域代码采用十六进制编码2字节如00c3=193<ci>字符型小区ID号采用十六进制编码2字节命令AT+CREG?如上定义+CREG:<mode>,<stat>OK命令AT+CREG=<mode>禁止/开放网络注册结果码响应OK命令有效命令AT+CREG=?+CREG:(0-2)支持012模式命令AT+CREG?已注册+CREG:0,1OK命令AT+CREG?未注册+CREG:00OK2.4安全性命令2.4.1AT+CPIN 输入PIN 码该命令用来输入ME 密码(CHV1/CHV2/PUK1/PUK2)CHV1/CHV2为4-8个数字PUK1/PUK2为8个数字如果用户企图在输入有效的SIM 卡PIN 码前建立呼叫模块拒绝ATD 命令返回+CME ERROR:11注意如果输入3次PIN 码都不成功则需要输入PUK 码除非需要慎用该命令否则可能导致SIM 卡失效.命令行格式为AT+CPIN=<Puk>,<NewPin>第2个参数作为新的PIN 码要想知道输入的是哪种密码用以下的命令AT+CPIN 可能的响应如下如果10次输入PUK 码失败则返回+CME ERROR :13SIM 卡需要更换下面的例子表示3次输入PIN 错误输入PUK 码成功命令AT+CPIN=1234输入PIN 码响应OKPIN 码正确命令AT+CPIN=5678输入PIN 码响应+CME ERROR:3操作不允许PIN 码已经输入命令AT+CPIN=00000000,1234输入PUK 码和新的PIN 码响应+CME ERROR:16PUK 码错误命令AT+CPIN=12345678,1234输入PUK 码和新的PIN 码第2次尝试响应OKPUK 正确新的PIN 已存储+CPIN:READY ME 不需要任何密码+CPIN:SIM PIN 需要CHV1码+CPIN:SIM PUK 需要PUK1码+CPIN:SIM PIN2需要CHV2码+CPIN:SIM PUK2需要PUK2码+CPIN:PH-SIM PIN 需要SIM 卡锁phone-to-SIM +CPIN:PH-NET PIN 需要网络身份识别+CME ERROR:<err>SIM 卡操作失败13空缺10等AT+CPIN?+CPIN:SIM PIN查询PIN 码当前状态模块要求输入PIN 码如果返回的响应为+CME ERROR:17表明模块要求输入PIN2码同样如果PIN2码有误则要求输入PUK2码例如往固定拨号电话本FDN 里写入记录就需要PIN2码见下表注模块只要求输入一次PIN2码或PUK2码如果输入不正确下一条AT+CPIN?命令返回+CPIN:READY2.4.2AT+CPIN2输入PIN2码这个专门的命令用来输入PIN2码或PUK2码定义新的PIN2码前面提到的AT+CPIN 命令也可以要求输入PIN2或PUK2码但是只有在前一项命令执行导致PIN2认证失败的情况下才会允许输入PIN2或PUK2码PIN2码长度为4-8个数字PUK2码长度为8个数字命令行格式AT+CPIN2=<pin2>AT+CPIN=1235+CME ERROR:16第一次尝试输入PIN 码错误AT+CPIN=1236+CME ERROR:16第二次尝试输入PIN 码错误AT+CPIN=1237+CME ERROR:16第三次尝试输入PIN 码错误AT+CPIN?+CPIN:SIM PUK 查询状态要求输入PUK 码AT+CPIN=99999999,5678OKPUK 码输入并且有效5678为新的PIN 码AT+CPIN?+CPIN:READY查询状态模块准备好命令AT+CPBS="FD"选择FDN响应OKAT+CPBW=5,"01290917",129,"Jacky "向FDN 的位置5写入记录响应+CME ERROR:17需要PIN2码命令AT+CPIN?+CPIN:SIM PIN2AT+CPIN=5678输入PIN2码响应OKAT+CPBW=5,"01290917",129,"Jacky "再次写入FDN 响应OK 命令成功如果3次输入PIN2码均错误则要求输入PUK2码命令行格式为AT+CPIN2=<puk2>,<NewPin2>新的PIN2码作为第二个参数用命令AT+CPIN2?来查询输入的是哪种类型的密码2.4.3AT AT^SPIC^SPIC PIN 码剩余尝试次数该命令显示输入PIN 码包括PIN1,PIN2,PUK1,PUK2的有效尝试次数命令AT+SPIC响应^SPIC:<counter>OK<n1>PIN 码的剩余尝试次数0-3要运行该命令SIM 卡须在初始化之前插入否则返回错误+CME ERROR :102.4.4AT+CLCK 功能锁定该命令可以用来锁定解锁或查询ME 的网络功能<fac>命令语法AT+CLCK=<fac>,<mode>[,<passwd>[,<class>]]响应+CLCK:<status>[,<class1>]+CLCK:<status>,<class2><fac>的取值范围:PS :用8位数字密码锁定SIM 卡功能命令AT+CPIN2=1234输入PIN2码响应OK正确命令AT+CPIN2=5678输入PIN2码响应+CME ERROR:3操作不允许已经输入过PIN2码命令AT+CPIN2=00000000,1234输入PUK2码和新的PIN2码响应+CME ERROR:16OUK2码错误命令AT+CPIN2=12345678,1234输入PUK2码和新的PIN2码,第2次尝试响应OKPUK2码正确PIN2码已存储命令AT^SPIC 查询状态响应^SPIC:2第一次输入PIN1码错误SC :要求PIN 码(<mode>=1)/不用PIN 码(<mode>=0)AO :BAOC(禁止所有的呼出电话)OI :BOIC(禁止呼出的国际电话)OX :BOIC-exHC(禁止呼出国际电话除了呼叫注册地电话)AI :BAIC 禁止所有的呼入电话IR :BIC-Roam 在非注册国漫游时禁止呼入电话AB :所有的限制业务AG :所有的呼出限制业务AC 所有的呼入限制业务PN :用8位数字密码锁定网络NCKFD :SIM 卡固定呼叫号码FDN 内存特色需要PIN2码<mode>:0解锁网络功能1锁定网络功能2查询状态<class>:1语音电话2数据对于所有的负载业务4传真传真业务8短消息7所有类型缺省值如果想综合不同的类型会导致激活/去激活/查询所有的类型2.4.5AT+CPWD 更改密码命令格式AT+CPWD=<fac>,<oldpwd>,<newpwd>该命令用来更改密码如PIN 码呼叫限制密码等其中<fac>的值和AT+CLCK 命令相同命令AT+CLCK="SC",1,1234使用PIN 码响应OK PIN 码正确命令AT+CLCK=?查询支持的功能响应+CLCK:("CS","PS","PF","SC ","AO","OI","OX","AI","IR","AB","AG","AC","FD","PN","PU","PP","PC")OK列举支持的功能命令AT+CLCK="AO",1,1234,2激活限制所有的呼出电话功能对数据电话响应OK对于网络锁定PN 10次解锁均失败后则不允许解锁 2.5电话本命令2.5.1AT+CPBS 选择电话本存储区该命令选择电话本存储区可用的存储区包括AND 即SM 自动拨号电话本FDN 固定拨号电话本受限制MSISDNSIM 卡本机号EN 紧急电话电话本如果当前使用FDN 电话本不能选择AND命令AT+CPBS="SM"选择ADN 电话本响应OK AT+CPBS=?查询支持的值响应+CPBS:("FD","SM","ON","ME","LD","MC","RC ")OK 支持ADN,FDN,MSI SDN 电话本命令AT+CPBS?查询状态响应+CPBS :"SM",10,20OK选择的是ADN 电话本已用个10个位置共有20个位置响应ERROR未检测到SIM 卡命令AT+CPWD=?查询支持的值响应+CPWD:("PS",8),("PF",8),("SC",8),("AO",4),("OI",4),("OX",4),("AI",4),("IR",4),("A B",4),("AG",4),("AC",4),("PN",8),("PU",8),("PP",8),("PC",8),("P2",8)OKPIN1/PIN2码4-8个数字于呼叫限制最多4位码命令AT+CPWD="SC",1234,5555更改PIN 码响应OKPIN 码正确命令AT+CPWD="PN",12345678,0000更改NCK响应OK2.5.2AT+CPBR 读取电话本该命令返回用AT+CPBS 命令选择的存储区一定范围内的记录2.5.3AT+CPBW 写电话本该命令向当前的电话本存储区某一位置处写入记录对EN 电话本不允许使用此命令因为它不可写命令AT+CPBR=?检测命令响应+CPBR:(1-50),20,10OK有50个存储位置电话号码最长20位相关信息最多10个字符命令AT+CPBR=12,14读取位置12-14的记录响应+CPBR :12,"112",129,"Emergency"+CPBR:13,"+86138********",145,"Fred"+CPBR:14,"138********",129,"Zazi"OK显示记录位置号号码号码类型相关信息命令AT+CPBR=10读取记录10响应+CPBR:10,"138********",129,"Ro b"OK显示记录10命令AT+CPBR=52读取记录52响应+CME ERROR:21位置号错误命令AT+CPBW=?检测命令响应+CPBW:(1-50),20,(129,145),10OK 有50个位置号码最长20位有2种类型字符信息最多10个命令AT+CPBW=3删除位置3的记录响应OK删除成功命令AT+CPBW=5,"112",129,"SOS"向位置5写入记录响应OKAT+CPBW=,"+86138********",向第一个空闲位置写入记录当固定拨号电话本FDN 锁住时此命令无效FDN 解锁后需要输入PIN2码2.6短消息命令(附有GSM 专用短信说明书)2.6.1参数定义<da>目标地址<dcs>数据编码方案<dt>时间字符格式yy/MM/ddhh :mm :ss zz <fo>第一个字节对SMS-SUBMIT 来说缺省值为17<index>内存中的存储位置<length>对TEXT 方式指字符个数对PDU 方式指数据单元的字节数<mem1>用来列举读取和删除消息的内存区<mem2>用来写发送消息的内存区<mid>广播消息标识<mr>消息参考<oa>发起方地址<pid>协议标识<pdu>16进制表示的数据单元145,"SOS"响应OKAT+CPBW=7,"012345678901234567890",129,"WAVE"向位置7写入记录响应+CME ERROR:26号码过长命令AT+CPBS="FD"选择FDN响应OKAT+CPBW=5,"01290917",129,"Jacky"向FDN 位置5写入记录响应+CME ERROR:17要求输入PIN2码命令AT+CPIN?CPIN SIM PIN2AT+CPIN=678输入PIN2码响应OKAT+CPBW=5,"01290917",129,"Jacky"向FDN 位置5写入记录响应OK允许写入FDN<ra>可容纳地址<sca>业务中心地址<scts>业务中心时间标记以字符格式yy/MM/dd,hh :mm :ss zz <sn>广播消息序列号<st>SMS-STATUS-REPORT 的状态<stat>内存中消息的状态<tooa>地址<oa>的类型<tora>地址<ra>的类型<tosca>地址<sca>的类型<total1><mem1>中的消息总存储空间<total2><mem2>中的消息总存储空间<used1><mem1>中已用的存储空间<used2><mem2>中已用的存储空间<vp>短消息的有效周期缺省为1672.6.2AT+CSMS 选择消息业务支持的业务包括移动台发起SMS-MO 和接收SMS-MT 的短消息小区广播消息SMS-CB 业务命令格式AT+CSMS=<service><service>0SMS 的AT 命令兼容GSM 07.05Phase 21SMS 的AT 命令兼容GSM 07.05Phase 2+2.6.3AT+CPMS 选择短消息存储区该命令允许定义读写短消息的存储区命令格式AT+CPMS=<mem1>,[<mem2>]<mem1>SM 短消息存储区存在SIM 卡上缺省值<mem2>SM 短消息存储区存在SIM 卡上缺省值如果命令正确返回+CPMS:<used1>,<total1>,<used2>,<total2>命令AT+CSMS=0设置AT 命令兼容Phase 2响应+CSMS:1,1,1OK 支持SMS-MO,SMS-MT,SMS-CB命令AT+CSMS=+CSMS:01OK命令AT+CPMS=?检测消息存储区响应+CPMS:读列举删除使用SM2.6.4AT+CMGF 选择消息格式选择消息为TEXT 或PDU 格式用PDU 格式包括所有头信息的短消息以二进制方式传送写成十六进制的格式用TEXT 格式命令和响应均为ASCII 字符选择的消息格式存储在EEPROM 里2.6.5AT+CSDH 显示TEXT 方式参数该命令为TEXT 方式的结果代码提供更多的信息状态对比+CMTI:"SM",1AT+CSDH=1OK("SM"),("SM"),("SM")OK写发送使用SM 命令AT+CPMS?读当前值响应+CPMS:"SM",0,25,"SM",0,25,"S M",0,25OK已有0条消息存入SIM 卡一共可以存25条消息命令AT+CMGF ?查询当前值响应+CMGF:1OK TEXT 方式命令AT+CMGF=?检测命令响应+CMGF:(0-1)OK支持TEXT 和PDU 方式命令AT+CSDH?查询当前值响应+CSDH:0OK不显示头信息at+cmgr=1+CMGR:"REC UNREAD","+86138********",,"08/11/18,23:17:41+32",145,4,0,0,"+86138********",145,3222OKAT+CSDH=0OKat+cmgr=1+CMGR:"REC READ","+86138********",,"08/11/18,23:17:41+32"222OK2.6.6AT+CNMI新消息提示命令格式AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr><mode>控制主动提供结果码的过程只支持<mode>=2,对于值013只是接受并返回OK其执行的过程与值2一样0结果代码缓冲区在TA如果TA的缓冲区满则提示信息存储在其他地方或者删除最旧的提示信息以新的代替1当TA-TE链接保留时拒绝新消息结果码否则直接将其传送给TE2当TA-TE链接保留时结果代码缓存在TA预约后发送给TE否则直接将其传送给TE3否则直接将结果码传送给TE当TA处于在线数据模式时特殊波段内的TA-TE链接用来嵌入结果码和数据<mt>为SMS-DELIVERs设置结果码提示发送路径缺省值为00SMS-DELIVER提示不需要发送路径1SMS-DELIVER由+CMTI:SM,<index>来提示发送路径2SMS-DELIVER除了class2消息由2种结果码来发送+CMT:[<alpha>,]<length><pdu>(PDU方式)+CMT:<oa>,[<alpha>,]<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>, <length>]<data>TEXT方式3class3的SMS-DELIVER消息采用<mt>=2中的结果码来发送其他类型的消息用<mt>=1的格式<bm>设置存储接收的广播消息的规则0不向TE发送广播消息提示信息广播消息已存储缺省值1广播消息已存储并以格式+CBMI:BMl,<index>向用户显示存储位置2新的广播消息采用2种格式直接发送给TE+CBM:<length><pdu>PDU方式+CBM:<sn>,<mid>,<dcs>,<page>,<pages><data>Text方式3对class3的广播消息采用<bm>=2的操作其他类型的消息采用<bm>=1的操作<ds>用于SMS_STATUS_REPORT,缺省值为00不发送SMS-STATUS-REPORT1采用如下格式发送SMS-STATUS-REPORT+CDS:<length><pdu>(PDU方式)+CDS:<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st>(Text方式)<bfr>缺省值为00当<mode>取值为1-3时TA缓冲区中的结果码发送给TE1当<mode>取值为1-3时清除TA缓冲区中的结果码命令AT+CNMI=2,1,0,0,0<mt>=1响应OK+CMTI:"SM",1收到新消息的提示2.6.7AT+CMGR读取短消息命令格式AT+CMGR=<index>采用TEXT方式的响应+CMGR:<stat>,<oa>,[<alpha>,]<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<data>对于SMS-DELIVER+CMGR:<stat>,<da>,[<alpha>,][,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<length>] <data>对于SMS-SUBMIT采用PDU方式的响应+CMGR:<stat>,[<alpha>],<length><pdu>2.6.8AT+CMGL 列举短消息用户使用该命令来读取某种类型的存储的短消息命令格式AT+CMGL=<stat>采用TEXT 方式的响应:+CMGL:<index>,<stat>,<da/oa>[,<alpha>],[<scts>,<tooa/toda>,<length>]<data>+CMGL:<index>采用PDU 方式的响应+CMGL :<index>,<stat>,[<alpha>],<length><pdu>+CMGL:<index><stat>的取值命令AT+CMGR=1读消息响应+CMGR:"REC UNREAD","+86138********","07/10/01,18:22:11+00",ABCdefGHI OKTEXT 方式PDU 方式TEXT 方式说明0REC UNREAD 接收未读1REC READ 接收已读2STO UNSENT 存储未发送3STO SENT 存储已发送4ALL所有消息命令AT+CMGL=REC UNREAD列举未读消息响应+CMGL:1,"REC UNREAD","+86138********",test+CMGL:3,"RECUNREAD","+86138********"hello OK由2条未读消息读后其状态变为REC READ 命令AT+CMGL="REC READ"2.6.9AT+CMGS 发送短消息采用TEXT 方式的命令格式AT+CMGS=<da>[,<toda>]text is entered 按ctrl-Z 发送出去/按ESC 取消采用PDU 方式的命令格式AT+CMGS=<length>PDU is entered 按ctrl-Z 发送出去/按ESC 取消PDU 发送只能输入十六进制的字符0-9A-F 返回给用户的消息参考值<mr>由模块分配这个值从0开始每发送一次消息递增1不论是否发送成功在0-255之间循环响应+CMGL:1,"REC READ","+86138********",,"08/11/18,23:17:41+32"222OKAT+CMGL="ALL"+CMGL:1,"REC READ","+8613818120592",,"08/11/18,23:17:41+32"222OK命令AT+CMGS="10086">YECX<ctrl-Z>(可用16进制的0x1a)用TEXT 方式发送消息响应+CMGS :<mr>OK发送成功命令AT+CMGS=<length><pdu><ctrl-Z>(可用16进制的0x1a)用PDU 方式发送消息响应+CMGS :<mr>OK发送成功AT+CMGF=1OKAT+CMGS=138********>text+CMGS:104OK2.6.10AT+CMGW向内存写入消息该命令存储短消息SMS-DELIVER或SMS-SUBMIT返回存储位置<index>消息输入的格式与AT+CMGS命令类似TEXT方式命令格式AT+CMGW=<oa/da>[,<tooa/toda>[,<stat>]]enter text按ctrl-Z发送出去/按ESC取消PDU方式命令格式AT+CMGW=<length>[,<stat>]give PDU按ctrl-Z发送出去(可用16进制的0x1a)/按ESC取消(可用16进制的0x1b)响应格式+CMGW:<index>+CMS ERROR<err>写入出错<oa/da>字符格式的发出/目标地址值<tooa/toda>发出/目标地址值类型<stat>状态值缺省为2表示存储消息的状态如果命令行没有此域存储的消息被认为是要发送的消息PDU方式TEXT方式0REC UNREAD1REC READ2STO UNSENT3STO SENT写入消息命令AT+CMGW="+33146290800"Hello,how are you?<ctrl-Z>(可用16进制的0x1a)2.6.11AT+CMSS 发送存储区内的消息该命令将存储区内的消息发送出去命令格式AT+CMSS=<index>[,<da>[,<toda>]]响应+CMSS :<mr>+CMS ERROR:<err>发送出错如果提供新的地址<da>它将代替存储在消息内的地址只有TEXT 方式才能使用这个命令2.6.12AT+CSMP 设置TEXT 方式参数该命令用来选择<vp>,<pid>,<dcs>的值命令格式AT+CSMP=<fo>,<vp>,<pid>,<dcs><fo>字节由6个域组成:RP:Reply Path (答复路径)TEXT 方式不用此域UDHI:User Data Header Information (用户数据头信息)如果用户数据域开始有头信息则置为1在AT+CSMP 命令里不支持这项功能但是PDU 方式可以用(AT+CMGS)SRR:Status Report Request 状态报告请求需要状态报告则置1VPFValidity Period Format 有效时间格式b4=0b3=0表示<vp>不提供b4=1b3=0表示<vp>提供其他格式不支持响应+CMGW :4OK消息存储在位置4命令AT+CMGW=138********Today is my birthday<ctrl-Z>(可用16进制的0x1a)写入消息响应+CMGW :5OK 消息存在位置5命令AT+CMSS=5发送消息5响应+CMSS :<mr>OK发送成功B7B6B5B4B3B2B1B0RPUDHISRRVPFRDMT1。
【导语】2018年导游证考试备战已经悄然拉开了帷幕,为了各位考友能够更好地复习应战,为⼤家带来2018年全国导游基础第⼗章考点:中国汉字的起源,希望能对各位的备考有帮助。
第10章中国旅游诗词、楹联、游记鉴赏 第⼀节中国汉字的起源与演变规律 汉字是世界上最古⽼的⽂字之⼀。
当世界上许多民族还处于原始、蒙昧时期,中华民族的祖先早已发明了⽂字并⽤以记载⾃⼰的历史和⽂化,进⼊⽂明时代。
汉字和汉字⽂化是中华⽂化的重要组成部分,⼜是中华历史和⽂化的书⾯记录。
在世界表意和表⾳的两⼤⽂字体系中,汉字属于表意⽂字系统。
延⽤数千年,⾄今仍能显⽰出强⼤的⽣命⼒。
继承发扬中华传统⽂化,应该了解汉字的起源、发展、变化的相关知识。
⼀、汉字的起源 在⽂字产⽣之前⼈们为了帮助记忆、交流思想、传递信息,采⽤的最原始的记事⽅法为结绳记事和契刻记事。
由于结绳记事和契刻记事都存在很⼤的不⾜,因此⼈们不得不采⽤其他的⽅法来记事,⽐如⽤图画的⽅法来帮助记忆、表达思想。
图画记事就是⽤⽂字的线条或笔画把要表达的物体的外形特征勾画出来。
书画同源,虽然绘画促进了⽂字的产⽣,然⽽图画发挥⽂字的作⽤,转变成⽂字,只有在语⾔被⼴泛使⽤之后才有可能。
如太阳写为“”,⽉亮写为“”等。
久⽽久之,⼈们约定俗成,类似于“”这样的图画就介于图画和⽂字之间了。
随着时间的推移,这样的图画越来越多,⽽且逐渐向⽂字⽅向偏移,最终使得⽂字从图画中分离出来,⽂字不再是图画的,⽽是书写的。
⽽书写的技术不需要逼真的描绘,只要把特点写出来,使⼈能够认识,原始的⽂字就这样出现了。
中国最早的⽂字是甲⾻⽂,是在约公元前14世纪的殷商后期形成的⼀种初步的定型⽂字。
甲⾻⽂就是⽤写或刻的⽅式留在龟甲或兽⾻上的⽂字,主要⽤来占⼘,也有的⽤来记事。
甲⾻⽂既是象形字⼜是表⾳字,因为这时候的⽂字多是从图画⽂字中演变过来的。
此后,汉字经历了由商周时期的⾦⽂,西周后期的⼤篆,秦朝的⼩篆,汉代的⾪书,到唐朝的狂草、楷书、⾏书等的发展过程。
C语⾔程序设计第三版微课版,C语⾔程序设计(第3版微课版)⽬ 录第1章 C语⾔概述 11.1 程序及程序设计语⾔ 11.1.1 程序及程序设计 11.1.2 程序设计语⾔ 21.2 C语⾔的发展及特点 31.2.1 C语⾔的发展概述 31.2.2 C语⾔的特点 41.3 C语⾔程序的基本结构 51.4 C语⾔字符集、标识符和关键字 91.4.1 C语⾔字符集 91.4.2 C语⾔标识符 101.4.3 C语⾔关键字 111.5 C语⾔程序的开发环境 121.5.1 Visual C++ 6.0集成开发环境介绍 121.5.2 在Visual C++ 6.0环境下建⽴和运⾏C语⾔程序的步骤 13本章⼩结 16易错提⽰ 17习题1 17第2章 C语⾔数据类型和表达式 202.1 C语⾔的数据类型 202.1.1 整型数据 212.1.2 实型数据 232.1.3 字符型数据 242.2 常量和变量 272.2.1 常量 272.2.2 变量 292.3 运算符和表达式 322.3.1 算术运算符和算术表达式 322.3.2 赋值运算符与赋值表达式 332.3.3 ⾃增⾃减运算符和⾃增⾃减表达式 342.3.4 逗号运算符和逗号表达式 35 2.3.5 条件运算符和条件表达式 36 2.4 数据类型转换 372.4.1 ⾃动转换 382.4.2 赋值转换 382.4.3 强制转换 402.5 位运算 402.5.1 位运算概述 412.5.2 按位取反运算 412.5.3 移位运算 412.5.4 按位与、或和异或 42本章⼩结 43易错提⽰ 44习题2 44第3章 顺序结构程序设计 493.1 程序设计的基本概念 493.2 C语⾔的语句 513.3 格式化输⼊/输出函数 523.3.1 格式化输出函数printf() 53 3.3.2 格式化输⼊函数 563.4 字符输⼊/输出函数 593.5 程序设计举例 61本章⼩结 64易错提⽰ 65习题3 65第4章 选择结构程序设计 714.1 关系运算符与关系表达式 71 4.1.1 关系运算符 714.1.2 关系表达式 724.2 逻辑运算符与逻辑表达式 72 4.2.1 逻辑运算符 724.2.2 逻辑表达式 744.3 if语句 744.3.1 单分⽀if语句 754.3.2 双分⽀if语句 774.3.3 多分⽀if语句 784.3.4 if语句的嵌套 814.4 switch语句 834.5 程序设计举例 86本章⼩结 89易错提⽰ 89习题4 90第5章 循环结构程序设计 985.1 while语句 995.2 do-while语句 1035.3 for语句 1045.4 for语句与while语句和do-while语句⽐较 107 5.5 break语句和continue语句 1085.5.1 break语句 1085.5.2 continue语句 1095.5.3 break语句和continue语句的区别 1115.6 循环的嵌套结构 1125.6.1 双重循环的嵌套 1125.6.2 多重循环的嵌套 1145.7 程序设计举例 115本章⼩结 123习题5 123第6章 数组 1346.1 ⼀维数组 1366.1.1 ⼀维数组的定义 1366.1.2 ⼀维数组的引⽤ 1386.1.3 ⼀维数组赋初值 1396.1.4 ⼀维数组的应⽤ 1416.2 ⼆维数组 1496.2.1 ⼆维数组的定义和注意事项 1496.2.2 ⼆维数组的引⽤ 1516.2.3 ⼆维数组的赋值 1526.2.4 ⼆维数组的应⽤ 1536.3 字符数组 1586.3.1 字符数组的定义 1586.3.2 字符数组初始化 1596.3.3 字符数组输⼊输出 1616.3.4 字符串处理函数 1636.4 程序举例 168本章⼩结 173易错提⽰ 173习题6 174第7章 函数与编译预处理 1857.1 模块化程序设计 1867.2 定义函数 1887.2.1 标准库函数 1887.2.2 函数的定义 1897.3 函数的调⽤ 1917.3.1 函数调⽤形式 1917.3.2 函数调⽤⽅式 1927.3.3 函数调⽤过程 1957.3.4 函数调⽤结果的返回 1967.4 函数间数据传递 1987.4.1 普通变量作为实参的值传递 199 7.4.2 数组名作为实参的地址传递 201 7.4.3 字符串作为实参的传递 2027.5 函数的嵌套调⽤ 2037.6 递归函数与递归调⽤ 2067.7 变量作⽤域与存储⽅式 2137.7.1 变量作⽤域 2137.7.2 变量的存储⽅式 2177.8 编译预处理 2207.8.1 宏定义 2207.8.2 ⽂件包含 2237.8.3 条件编译 225本章⼩结 227习题7 228第8章 指针 2378.1 指针与指针变量 2378.1.1 指针的概念 2378.1.2 指针变量 2398.1.3 指针变量的定义 2398.1.4 指针变量初始化 2408.1.5 指针运算符 2418.1.6 指针运算 2438.1.7 多级指针 2478.2 指针与数组 2478.2.1 ⼀维数组元素的指针访问 248 8.2.2 ⼆维数组元素的指针访问 253 8.2.3 指向⼀维数组的指针 2588.2.4 指针数组 2618.3 字符指针与字符串 2648.3.1 字符串的表现形式 2648.3.2 ⽤字符指针处理字符串 266 8.4 指针与函数 2698.4.1 指针作为函数参数 2698.4.2 指向函数的指针 2708.4.3 返回指针值的函数 2728.4.4 带参数的main()函数 2738.5 动态指针 2748.6 指针程序设计举例 276本章⼩结 279易错提⽰ 280习题8 281第9章 结构体与共⽤体 2909.1 结构体的概念 2909.1.1 结构体类型的定义 2909.1.2 结构体类型变量的定义 291 9.1.3 结构体类型变量的引⽤ 295 9.1.4 结构体类型变量的初始化 298 9.2 结构体数组与链表 2989.2.1 结构体数组的定义与引⽤ 298 9.2.2 结构体数组初始化和应⽤ 300 9.2.3 链表 3009.3 共⽤体的概念 3079.3.1 共⽤体类型的定义 3079.3.2 共⽤体类型变量的定义 3089.3.3 共⽤体类型变量的引⽤ 3099.4 程序设计举例 311本章⼩结 316习题9 316第10章 ⽂件 32410.1 ⽂件的概述 32410.1.1 ⽂件的分类 32410.1.2 ⽂件的缓冲区 32510.1.3 ⽂件的存取⽅式 32610.1.4 ⽂件类型的指针 32610.2 ⽂件的常⽤操作 32710.2.1 ⽂件的打开与关闭 32710.2.2 ⽂件的读写 32910.2.3 ⽂件的定位 33510.2.4 ⽂件的其他操作 337本章⼩结 338习题10 338第11章 综合实训 34111.1 简单的银⾏⾃动取款机系统 341 11.1.1 问题描述 34111.1.2 总体设计 34111.1.3 详细设计 34211.1.4 设计代码 34911.1.5 系统运⾏界⾯ 35411.1.6 系统测试 35711.2 学⽣成绩管理系统 35711.2.1 设计要求 35711.2.2 设计架构 35711.2.3 设计⽅法 35911.2.4 代码设计 36211.3 电话簿管理系统 36211.3.1 设计要求 36211.3.2 设计架构 36211.3.3 设计⽅法 36311.3.4 代码设计 36511.4 综合实训题⽬ 365附录I 常⽤字符与ASCII码对照表 367附录II C语⾔运算符的优先级和结合⽅向 368附录III 常⽤C语⾔库函数 369参考⽂献 373。
第10章:字符集支持目录10.1. 常规字符集和校对10.2. MySQL中的字符集和校对10.3. 确定默认字符集和校对10.3.1. 服务器字符集和校对10.3.2. 数据库字符集和校对10.3.3. 表字符集和校对10.3.4. 列字符集和校对10.3.5. 字符集和校对分配示例10.3.6. 连接字符集和校对10.3.7. 字符串文字字符集和校对10.3.8. 在SQL语句中使用COLLATE10.3.9. COLLATE子句优先10.3.10. BINARY操作符10.3.11. 校对确定较为复杂的一些特殊情况10.3.12. 校对必须适合字符集10.3.13. 校对效果的示例10.4. 字符集支持影响到的操作10.4.1. 结果字符串10.4.2. CONVERT()10.4.3. CAST()10.4.4. SHOW语句10.5. Unicode支持10.6. 用于元数据的UTF810.7. 与其它DBMS的兼容性10.8. 新字符集配置文件格式10.9. 国家特有字符集10.10. MySQL支持的字符集和校对10.10.1. Unicode字符集10.10.2. 西欧字符集10.10.3. 中欧字符集10.10.4. 南欧与中东字符集10.10.5. 波罗的海字符集10.10.6. 西里尔字符集10.10.7. 亚洲字符集本章讨论以下主题:·什么是字符集和校对规则?·多级默认系统·字符集语法·相关函数和运算· Unicode支持·每个字符集和校对规则的含义MySQL5.1中的字符集支持包括在MyISAM、MEMORY和InnoDB存储引擎中。
10.1. 常规字符集和校对字符集是一套符号和编码。
校对规则是在字符集内用于比较字符的一套规则。
让我们使用一个假想字符集的例子来区别清楚。
假设我们有一个字母表使用了四个字母:‘A’、‘B’、‘a’、‘b’。
我们为每个字母赋予一个数值:‘A’=0,‘B’= 1,‘a’= 2,‘b’= 3。
字母‘A’是一个符号,数字0是‘A’的编码,这四个字母和它们的编码组合在一起是一个字符集。
假设我们希望比较两个字符串的值:‘A’和‘B’。
比较的最简单的方法是查找编码:‘A’为0,‘B’为1。
因为0 小于1,我们可以说‘A’小于‘B’。
我们做的仅仅是在我们的字符集上应用了一个校对规则。
校对规则是一套规则(在这种情况下仅仅是一套规则):“对编码进行比较。
”我们称这种全部可能的规则中的最简单的校对规则为一个binary(二元)校对规则。
但是,如果我们希望小写字母和大写字母是等价的,应该怎样?那么,我们将至少有两个规则:(1)把小写字母‘a’和‘b’视为与‘A’和‘B’等价;(2)然后比较编码。
我们称这是一个大小写不敏感的校对规则。
比二元校对规则复杂一些。
在实际生活中,大多数字符集有许多字符:不仅仅是‘A’和‘B’,而是整个字母表,有时候有许多种字母表,或者一个东方的使用上千个字符的书写系统,还有许多特殊符号和标点符号。
并且在实际生活中,大多数校对规则有许多个规则:不仅仅是大小写不敏感,还包括重音符不敏感(“重音符” 是附属于一个字母的符号,象德语的‘Ö’符号)和多字节映射(例如,作为规则‘Ö’=‘OE’就是两个德语校对规则的一种)。
MySQL5.1能够做这些事情:·使用多种字符集来存储字符串·使用多种校对规则来比较字符串·在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串·允许定义任何级别的字符集和校对规则在这些方面,MySQL5.1不仅比MySQL4.1以前的版本灵活得多,而且比其它大多数数据库管理系统超前许多。
但是,为了有效地使用这些功能,你需要了解哪些字符集和校对规则是可用的,怎样改变默认值,以及它们怎样影响字符操作符和字符串函数的行为。
10.2. MySQL中的字符集和校对MySQL服务器能够支持多种字符集。
可以使用SHOW CHARACTER SET语句列出可用的字符集:mysql> SHOW CHARACTER SET;+----------+-----------------------------+---------------------+--------+| Charset | Description | Default collation | Maxlen |+----------+-----------------------------+---------------------+--------+| big5 | Big5 Traditional Chinese | big5_chinese_ci | 2 || dec8 | DEC West European | dec8_swedish_ci | 1 || cp850 | DOS West European | cp850_general_ci | 1 || hp8 | HP West European | hp8_english_ci | 1 || koi8r | KOI8-R Relcom Russian | koi8r_general_ci | 1 || latin1 | cp1252 West European | latin1_swedish_ci | 1 || latin2 | ISO 8859-2 Central European | latin2_general_ci | 1 || swe7 | 7bit Swedish | swe7_swedish_ci | 1 || ascii| US ASCII | ascii_general_ci | 1 || ujis | EUC-JP Japanese | ujis_japanese_ci | 3 || sjis | Shift-JIS Japanese | sjis_japanese_ci | 2 || hebrew | ISO 8859-8 Hebrew | hebrew_general_ci | 1 || tis620 | TIS620 Thai | tis620_thai_ci | 1 || euckr | EUC-KR Korean | euckr_korean_ci | 2 || koi8u | KOI8-U Ukrainian | koi8u_general_ci | 1 || gb2312 | GB2312 Simplified Chinese | gb2312_chinese_ci | 2 || greek | ISO 8859-7 Greek | greek_general_ci | 1 || cp1250 | Windows Central European | cp1250_general_ci | 1 || gbk | GBK Simplified Chinese| gbk_chinese_ci | 2 || latin5 | ISO 8859-9 Turkish | latin5_turkish_ci | 1 |...(完整列表参见10.10节,“MySQL支持的字符集和校对”。
)任何一个给定的字符集至少有一个校对规则。
它可能有几个校对规则。
要想列出一个字符集的校对规则,使用SHOW COLLATION语句。
例如,要想查看latin1(“西欧ISO-8859-1”)字符集的校对规则,使用下面的语句查找那些名字以latin1开头的校对规则:mysql> SHOW COLLATION LIKE 'latin1%';+---------------------+---------+----+---------+----------+---------+| Collation | Charset | Id | Default | Compiled | Sortlen |+---------------------+---------+----+---------+----------+---------+| latin1_german1_ci | latin1 | 5 | | | 0 || latin1_swedish_ci | latin1 | 8 | Yes | Yes | 1 || latin1_danish_ci | latin1 | 15 | | | 0 || latin1_german2_ci | latin1 | 31 | | Yes | 2 || latin1_bin | latin1 | 47 | | Yes | 1 || latin1_general_ci | latin1 | 48 | | | 0 || latin1_general_cs | latin1 | 49 | | | 0 || latin1_spanish_ci | latin1 | 94 | | | 0 |+---------------------+---------+----+---------+----------+---------+latin1校对规则有下面的含义:校对规则一般有这些特征:·两个不同的字符集不能有相同的校对规则。
·每个字符集有一个默认校对规则。
例如,latin1默认校对规则是latin1_swedish_ci。
·存在校对规则命名约定:它们以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
10.3. 确定默认字符集和校对10.3.1. 服务器字符集和校对10.3.2. 数据库字符集和校对10.3.3. 表字符集和校对10.3.4. 列字符集和校对10.3.5. 字符集和校对分配示例10.3.6. 连接字符集和校对10.3.7. 字符串文字字符集和校对10.3.8. 在SQL语句中使用COLLATE10.3.9. COLLATE子句优先10.3.10. BINARY操作符10.3.11. 校对确定较为复杂的一些特殊情况10.3.12. 校对必须适合字符集10.3.13. 校对效果的示例字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
以下描述可能显得复杂,但是在实际应用中可以发现使用多种级别会使结果自然而明显。
10.3.1. 服务器字符集和校对MySQL服务器有一个服务器字符集和一个服务器校对规则,它们均不能设置为空。
MySQL按照如下方法确定服务器字符集和服务器校对规则:·当服务器启动时根据有效的选项设置·根据运行时的设定值在服务器级别,确定方法很简单。