9.1 第9章 字符集

9.1 -9.3 字符集概述

这里着重介绍utf-8和gbk:

  1. utf-8:

UTF-8按一定规则将一个ISO-10646或Unicode字元码转换成1至4个字节的编码,其中将ASCII码(0~0x7F)转换成单字节编码,也就是严格兼容ASCII字符集;UTF-8的2字节编码,用以转换ISO-10646标准0x0080~0x07FF的UCS-4原始码;UTF-8的3字节编码,用以转换ISO-10646标准 0x0800~0xFFFF的UCS-4原始码;UTF-8的4字节编码,用以转换ISO-10646标准0x00010000~0001FFFF的UCS-4原始码。

  1. gbk:

GBK:全称《汉字内码扩展规范》1.0 版,发布于1995 年。GBK 在GB2312 内码系统的基础上进行了扩充,收录了GB13000.1-1993 的全部20902 个CJK 统一汉字,包括GB2312 的全部6763 个汉字。此外,它增补编码了52 个汉字,13 个汉字结构符(在ISO/IEC 10646.1: 2000中称为表意文字描述符)和一些常用部首与汉字部件。在GBK 的内码系统中,GB2312 汉字所在码位保持不便,这样,保证了GBK 对GB2312 的完全兼容。同时,GBK 内码与GB13000.1代码一一对应,为GBK 向GB13000.1 的转换提供了解决办法。有意思的是GBK 并不是一个强制性的国家标准,只是一个行业指导规范,并没有强制力,但由于得到了MicrosoftWindows 95 的支持而大为流行。

3.各字符集比较

引用块内容

9.4 怎样选择合适的字符集

对数据库来说,字符集更加重要,因为数据库存储的数据大部分都是各种文字,字符集对数据库的存储、处理性能,以及日后系统的移植、推广都会有影响。

MySQL 5.0 目前支持几十种字符集,UTF-8 是MySQL 5.0 支持的唯一Unicode 字符集,但
版本是3.0,不支持4 字节的扩展部分。面对众多的字符集,我们该如何选择呢?

虽然没有一定之规,但在选择数据库字符集时,可以根据应用的需求,结合上面介绍的
一些字符集的特点来权衡,主要考虑因素包括:

(1)满足应用支持语言的需求,如果应用要处理各种各样的文字,或者将发布到使用 不同语言的国家或地区,就应该选择Unicode 字符集。对MySQL 来说,目前就是UTF-8。

(2)如果应用中涉及已有数据的导入,就要充分考虑数据库字符集对已有数据的兼容
性。假如已有数据是GBK 文字,如果选择GB2312-80 为数据库字符集,就很可能出现某些 文字无法正确导入的问题。

(3)如果数据库只需要支持一般中文,数据量很大,性能要求也很高,那就应该选择 双字节定长编码的中文字符集,比如GBK。因为,相对于UTF-8 而言,GBK 比较“小”,每 个汉字只占2 个字节,而UTF-8 汉字编码需要3 个字节,这样可以减少磁盘I/O、数据库cache,以及网络传输的时间,从而提高性能。相反,如果应用主要处理英文字符,仅有少量汉字数 据,那么选择UTF-8更好,因为GBK、UCS-2、UTF-16 的西文字符编码都是2 个字节,会造成 很大不必要的开销。

(4)如果数据库需要做大量的字符运算,如比较、排序等,选择定长字符集可能更好, 因为定长字符集的处理速度要比变长字符集的处理速度快。

(5)如果所有客户端程序都支持相同的字符集,应该优先选择该字符集作为数据库字 符集。这样可以避免因字符集转换带来的性能开销和数据损失。

代码下载地址: https://pan.quark.cn/s/b4a8e0160cfc 齿轮与轴系零件在机械设备中扮演着至关重要的角色,它们负责实现动力传输、调整运动形态以及承受工作载荷等核心功能。 在机械工程的设计实践中,齿轮和轴系的设计是一项关键的技术任务,其内容涵盖了材料选用、构造规划、承载能力分析等多个技术层面。 下面将系统性地介绍《齿轮及轴系零件结构设计指导书》中的核心知识点。 一、齿轮设计1. 齿轮种类:依据齿廓轮廓的不同,齿轮可划分为直齿齿轮、斜齿轮以及人字齿轮等类别,各类齿轮均具有特定的性能特点与适用工况,能够满足多样化的工作环境与载荷需求。 2. 齿轮规格参数:模数大小、压力角数值、齿数数量、分度圆尺寸等是齿轮设计的基础数据,这些参数直接决定了齿轮的物理尺寸与运行性能。 3. 齿轮材质选用:齿轮材料的确定需综合评估其耐磨损性能、硬度水平以及韧性表现,常用的材料包括铸铁、钢材、铝合金等。 4. 齿轮强度验证:需进行齿面接触应力分析与齿根弯曲应力分析,以确保齿轮在实际运行过程中不会出现过度磨损或结构破坏。 5. 齿轮加工工艺:涉及切削加工、滚齿加工、剃齿加工、淬火处理等工艺流程,工艺方案的选择将直接影响齿轮的加工精度与使用寿命。 二、轴设计1. 轴的分类方式:依据轴在机械装置中的功能定位与受力特点,可将轴划分为心轴、转轴以及传动轴等类型。 2. 轴的材料选择:通常采用钢材作为轴的材料,例如碳素结构钢或合金结构钢,特殊需求时可选用不锈钢材料或轻质合金材料。 3. 轴的构造规划:需详细考虑轴的轴向长度、截面直径、键槽布置、轴承安装位置等要素,以满足轴的强度要求、刚度要求以及稳定性要求。 4. 轴的强度验证:需进行轴的扭转强度分析与弯曲强度分析,以防止轴在运行过程中发生塑性变形...
### 编译原理 Dragon Book 第九 答案与解析 #### 9.1 文法和语言的形式化描述 第九主要探讨上下文无关文法(CFG)以及如何通过这些文法构建语法树。对于给定的一个字符串,如果能够按照某个特定的文法规则逐步推导出来,则该字符串属于此语言的一部分。 例如,在处理算术表达式的场景下,可以定义如下简单的文法规则[^4]: ```ebnf expr -> term ((PLUS | MINUS) term)* term -> factor ((MUL | DIV) factor)* factor -> INTEGER | LPAREN expr RPAREN ``` 这段 EBNF 描述了一个基本的算术表达式求值器所需的全部规则集。其中 `expr` 表达式由多个 `term` 组成;每个 `term` 又是由若干个 `factor` 构建而成;而最底层的 `factor` 要么是一个整数常量要么是一对括号内的另一个完整的 `expr` 子表达式。 #### 9.2 自顶向下分析方法 自顶向下的预测分析是一种常见的递归下降方式实现的技术。它试图从根节点开始建立一颗可能存在的语法树,并尝试验证输入序列是否符合预期模式。当遇到非终结符时,会调用相应的函数继续深入探索其潜在展开形式直到触及叶结点即具体的记号(token)[^2]。 为了确保这种策略有效工作,需要满足LL(1)条件——即对于任意两个不同的生产规则A->α|β, 都存在一个唯一的前瞻符号集合FIRST使得可以根据当前读取到的那个token唯一决定应该应用哪一个选项来进行下一步操作。 #### 9.3 LL(1) 分析表构造算法 基于上述理论基础之上,可以通过计算 FIRST 和 FOLLOW 函数来辅助生成一张用于指导实际解析过程的动作表格。这张表记录着针对每一对可能出现的状态组合 (状态编号, 输入字符),应当采取的具体行动是什么样的:接受、移进还是规约某条指定的产生式[^3]。 具体来说, - **FIRST(X)** 定义为可以从X派生出来的所有首字母组成的集合; - **FOLLOW(A)** 是指紧跟在一个非终端 A 后面可能出现的所有标记构成的集合。 利用这两个概念可以帮助我们判断何时何地应该执行怎样的动作从而完成整个编译流程中的这一重要环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值