GT20L16P1Y 标 准 汉 字 字 库 芯 片 用 户 手 册 DATASHEET 支 持 GB2312 简 体 汉 字 字 符 集 支 持 UNICODE 常 用 简 繁 体 汉 字 字 符 集 支 持 Unicode 175 国 中 外 文 字 符 集 拉 丁 文 希 腊 文 西 里 尔 文 阿 拉 伯 文 希 伯 来 文 泰 文 等 排 置 方 式 : 竖 置 横 排 总 线 接 口 :SPI 串 行 总 线 芯 片 形 式 :SOT23-6 封 装 VER 1.0 2010-Q4 集 通 数 码 科 技 - 1 - www.genitop.com
目 录 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 第 一 部 分 : 硬 件 部 分 1 概 述...3 1.1 芯 片 特 点...3 1.2 芯 片 内 容...4 1.3 字 型 样 张...5 2 引 脚 描 述 与 接 口 连 接...6 2.1 引 脚 描 述...3 2.2 HOST CPU 主 机 SPI 接 口 电 路 示 意 图...6 3 操 作 指 令...7 3.1 指 令 参 数...7 3.2 Read Data Bytes( 一 般 读 取 )...7 3.3 Read Data Bytes at Higher Speed( 快 速 读 取 点 阵 数 据 )...8 4 电 气 特 性...9 4.1 绝 对 最 大 额 定 值...9 4.2 DC 特 性...9 4.3 AC 特 性...9 5 封 装 尺 寸...11 第 二 部 分 : 软 件 部 分 6 字 库 调 用 方 法...12 6.1 字 符 点 阵 排 列 格 式...12 6.2 点 阵 字 库 地 址 表...14 6.3 字 符 在 芯 片 中 的 地 址 计 算 方 法...14 7 附 录...18 7.1 Unicode 字 符 区 字 符...18 7.2 175 国 中 外 文 字 库 拼 音 索 引 表...25 7.3 175 国 中 外 文 字 库 字 母 索 引 表...27 7.4 175 国 中 外 文 字 库 总 表...29 7.5 UTF8 编 码 到 UTF16 编 码 转 换 程 序...33 集 通 数 码 科 技 - 2 - www.genitop.com
1 概 述 GT20L16P1Y 是 一 款 15X16 汉 字 点 阵 和 16 点 外 文 点 阵 字 库 芯 片, 支 持 GB2312 字 符 集 UNICODE 字 符 集, 同 时 支 持 拉 丁 文 希 腊 基 里 尔 文 阿 拉 伯 文 希 伯 来 文 泰 文 排 列 格 式 为 竖 置 横 排 用 户 通 过 字 符 内 码, 利 用 本 手 册 提 供 的 方 法 计 算 出 该 字 符 点 阵 在 芯 片 中 的 地 址, 可 从 该 地 址 连 续 读 出 字 符 点 阵 信 息 1.1 芯 片 特 点 数 据 总 线 :SPI 串 行 总 线 接 口 点 阵 排 列 方 式 : 字 节 竖 置 横 排 1 6 时 钟 频 率 :30MHz(max.) @3.3V 工 作 电 压 :2.2V~3.6V 电 流 : 工 作 电 流 :8mA 2 16P1Y 5 待 机 电 流 :8uA 3 4 封 装 :SOT23-6 尺 寸 SOT23-6:2.9mmX1.6 mm x1.10mm 工 作 温 度 :-20 ~85 1.2 引 脚 描 述 SOT23-6 名 称 I/O 描 述 1 SCLK I 串 行 时 钟 输 入 (Serial clock input) 2 GND 地 (Ground) 3 CS# I 片 选 输 入 (Chip enable input) 4 VCC 电 源 (+ 3.3V Power Supply) 5 SO O 串 行 数 据 输 出 (Serial data output) 6 SI I 串 行 数 据 输 入 (Serial data input) 串 行 数 据 输 出 (SO): 该 信 号 用 来 把 数 据 从 芯 片 串 行 输 出, 数 据 在 时 钟 的 下 降 沿 移 出 串 行 数 据 输 入 (SI): 该 信 号 用 来 把 数 据 从 串 行 输 入 芯 片, 数 据 在 时 钟 的 上 升 沿 移 入 串 行 时 钟 输 入 (SCLK): 数 据 在 时 钟 上 升 沿 移 入, 在 下 降 沿 移 出 片 选 输 入 (CS#): 所 有 串 行 数 据 传 输 开 始 于 CE# 下 降 沿,CE# 在 传 输 期 间 必 须 保 持 为 低 电 平, 在 两 条 指 令 之 间 保 持 为 高 电 平 集 通 数 码 科 技 - 3 - www.genitop.com
1.3 芯 片 内 容 点 阵 等 宽 字 符 不 等 宽 字 符 字 符 集 字 符 数 8X16 15X16 16 点 ASCⅡ 字 符 96 GB2312/Unicode 汉 字 5271+3417 拉 丁 文 系 (130 国 ) Basic( 基 本 ) 96 Supplement( 补 充 ) 96 Extended A( 扩 展 A) 128 Extended B( 扩 展 B) 80 Extended Additional( 扩 展 附 加 ) 96 Unicode 希 腊 文 系 (2 国 ) Basic( 基 本 ) 96 西 里 尔 文 系 (15 国 ) Basic( 基 本 ) 208 Basic( 基 本 ) 256 阿 拉 伯 文 系 Form A( 附 表 A) 176 (24 国 ) Form B( 附 表 B) 144 希 伯 来 文 (1 国 ) Basic( 基 本 ) 112 泰 文 (1 国 ) Basic( 基 本 ) 128 集 通 数 码 科 技 - 4 - www.genitop.com
1.4 字 型 样 张 GB 2312 字 符 UNICODE 字 符 拉 丁 文 希 腊 文 西 里 尔 文 伯 来 文 泰 文 阿 拉 伯 文 集 通 数 码 科 技 - 5 - www.genitop.com
2 引 脚 描 述 与 接 口 连 接 2.1 HOST CPU 主 机 SPI 接 口 电 路 示 意 图 SPI 与 主 机 接 口 电 路 连 接 可 以 参 考 下 图 GT20 HOST CPU 主 机 SPI 接 口 电 路 示 意 图 集 通 数 码 科 技 - 6 - www.genitop.com
3 操 作 指 令 3.1 指 令 参 数 Instruction Set Instruction Description Instruction Code(One-Byte) Address Bytes Dummy Bytes Data Bytes READ Read Data Bytes 0000 0011 03 h 3 1 to FAST_READ Read Data Bytes at Higher Speed 0000 1011 0B h 3 1 1 to 所 有 对 本 芯 片 的 操 作 只 有 2 个, 那 就 是 Read Data Bytes (READ 一 般 读 取 ) 和 Read Data Bytes at Higher Speed (FAST_READ 快 速 读 取 点 阵 数 据 ) 3.2 Read Data Bytes( 一 般 读 取 ) Read Data Bytes 需 要 用 指 令 码 来 执 行 每 一 次 操 作 READ 指 令 的 时 序 如 下 ( 图 ): 首 先 把 片 选 信 号 (CS#) 变 为 低, 紧 跟 着 的 是 1 个 字 节 的 命 令 字 (03 h) 和 3 个 字 节 的 地 址 和 通 过 串 行 数 据 输 入 引 脚 (SI) 移 位 输 入, 每 一 位 在 串 行 时 钟 (SCLK) 上 升 沿 被 锁 存 然 后 该 地 址 的 字 节 数 据 通 过 串 行 数 据 输 出 引 脚 (SO) 移 位 输 出, 每 一 位 在 串 行 时 钟 (SCLK) 下 降 沿 被 移 出 读 取 字 节 数 据 后, 则 把 片 选 信 号 (CS#) 变 为 高, 结 束 本 次 操 作 如 果 片 选 信 号 (CS#) 继 续 保 持 为 底, 则 下 一 个 地 址 的 字 节 数 据 继 续 通 过 串 行 数 据 输 出 引 脚 (SO) 移 位 输 出 图 :Read Data Bytes (READ) Instruction Sequence and Data-out sequence: 集 通 数 码 科 技 - 7 - www.genitop.com
3.3 Read Data Bytes at Higher Speed( 快 速 读 取 点 阵 数 据 ) Read Data Bytes at Higher Speed 需 要 用 指 令 码 来 执 行 操 作 READ_FAST 指 令 的 时 序 如 下 ( 图 ): 首 先 把 片 选 信 号 (CS#) 变 为 低, 紧 跟 着 的 是 1 个 字 节 的 命 令 字 (0B h) 和 3 个 字 节 的 地 址 以 及 一 个 字 节 Dummy Byte 通 过 串 行 数 据 输 入 引 脚 (SI) 移 位 输 入, 每 一 位 在 串 行 时 钟 (SCLK) 上 升 沿 被 锁 存 然 后 该 地 址 的 字 节 数 据 通 过 串 行 数 据 输 出 引 脚 (SO) 移 位 输 出, 每 一 位 在 串 行 时 钟 (SCLK) 下 降 沿 被 移 出 如 果 片 选 信 号 (CS#) 继 续 保 持 为 底, 则 下 一 个 地 址 的 字 节 数 据 继 续 通 过 串 行 数 据 输 出 引 脚 ( SO) 移 位 输 出 例 : 读 取 一 个 15x16 点 阵 汉 字 需 要 32Byte, 则 连 续 32 个 字 节 读 取 后 结 束 一 个 汉 字 的 点 阵 数 据 读 取 操 作 如 果 不 需 要 继 续 读 取 数 据, 则 把 片 选 信 号 (CS#) 变 为 高, 结 束 本 次 操 作 图 :Read Data Bytes at Higher Speed (READ_FAST) Instruction Sequence and Data-out sequence: 集 通 数 码 科 技 - 8 - www.genitop.com
4 电 气 特 性 4.1 绝 对 最 大 额 定 值 Symbol Parameter Min. Max. Unit Condition T OP Operating Temperature -20 85 T STG Storage Temperature -65 150 VCC Supply Voltage -0.3 3.6 V V IN Input Voltage -0.3 VCC+0.3 V GND Power Ground -0.3 0.3 V 4.2 DC 特 性 Condition:T OP =-20 to 85,GND=0V Symbol Parameter Min. Max. Unit Condition I DD VCC Supply Current(active) 8 ma I SB VCC Standby Current 8 ua V IL Input LOW Voltage -0.3 0.3VCC V V IH Input HIGH Voltage 0.7VCC VCC+0.4 V 0.4 V OL Output LOW Voltage V (I OL =1.6mA) 0.8VCC V OH Output HIGH Voltage V (I OH =-100uA) VCC=2.2~3.6V I LI Input Leakage Current 0 2 ua I LO Output Leakage Current 0 2 ua Note:I IL :Input LOW Current,I IH :Input HIGH Current, I OL :Output LOW Current,I OH :Output HIGH Current, 4.3 AC 特 性 Symbol Alt. Parameter Min. Max. Unit Fc Fc Clock Frequency D.C. 30 MHz tch tclh Clock High Time 15 ns tcl tcll Clock Low Time 15 ns tclch Clock Rise Time(peak to peak) 0.1 V/ns tchcl Clock Fall Time (peak to peak) 0.1 V/ns tslch tcss CS# Active Setup Time (relative to SCLK) 5 ns tchsl CS# Not Active Hold Time (relative to SCLK) 5 ns tdvch tdsu Data In Setup Time 2 ns tchdx tdh Data In Hold Time 5 ns t CHSH CS# Active Hold Time (relative to SCLK) 5 ns t SHCH CS# Not Active Setup Time (relative to SCLK) 5 ns t SHSL tcsh CS# Deselect Time 100 ns t SHQZ tdis Output Disable Time 9 ns t CLQV tv Clock Low to Output Valid 9 ns t CLQX tho Output Hold Time 0 ns 集 通 数 码 科 技 - 9 - www.genitop.com
集 通 数 码 科 技 - 10 - www.genitop.com
5 封 装 尺 寸 SOT23-6 Package SOT23-6 封 装 集 通 数 码 科 技 - 11 - www.genitop.com
6 字 库 调 用 方 法 6.1 字 符 点 阵 排 列 格 式 每 个 字 符 在 芯 片 中 是 以 汉 字 点 阵 字 模 的 形 式 存 储 的, 每 个 点 用 一 个 二 进 制 位 表 示, 存 1 的 点, 当 显 示 时 可 以 在 屏 幕 上 显 示 亮 点, 存 0 的 点, 则 在 屏 幕 上 不 显 示 点 阵 排 列 格 式 为 竖 置 横 排 : 即 一 个 字 节 的 高 位 表 示 下 面 的 点, 低 位 表 示 上 面 的 点 ( 如 果 用 户 按 16bit 总 线 宽 度 读 取 点 阵 数 据, 请 注 意 高 低 字 节 的 顺 序 ), 排 满 一 行 后 再 排 下 一 行 这 样 把 点 阵 信 息 用 来 直 接 在 显 示 器 上 按 上 述 规 则 显 示, 则 将 出 现 对 应 的 字 符 6.1.1 8X16 点 字 符 排 列 格 式 适 用 于 此 种 排 列 格 式 的 字 体 有 : 8X16 点 ASCII 字 符 8X16 点 拉 丁 文 希 腊 文 基 里 尔 文 字 符 希 伯 来 文 系 字 符 泰 文 字 符 8X16 点 字 符 信 息 需 要 16 个 字 节 (BYTE 0 BYTE15) 来 表 示 该 点 阵 数 据 是 竖 置 横 排 的, 其 具 体 排 列 结 构 如 下 图 : 8 列 16 行 B0 B1 B2 B3 B4 B5 B6 B7 B0 B1 B2 B3 B4 B5 B6 B7 BYTE 0 BYTE 8 B0 B1 B2 B3 B4 B5 B6 B7 B0 B1 B2 B3 B4 B5 B6 B7 BYTE 1 BYTE 9............ B0 B1 B2 B3 B4 B5 B6 B7 B0 B1 B2 B3 B4 B5 B6 B7 BYTE 7 BYTE 15 6.1.2 16 点 阵 不 等 宽 阿 拉 伯 字 符 排 列 格 式 16 点 阵 不 等 宽 阿 拉 伯 字 符 的 信 息 需 要 34 个 字 节 (BYTE 0 BYTE33) 来 表 示 存 储 格 式 由 于 字 符 是 不 等 宽 的, 因 此 在 存 储 格 式 中 BYTE0~ BYTE1 存 放 点 阵 宽 度 数 据,BYTE2-33 存 放 竖 置 横 排 点 阵 数 据 具 体 格 式 见 下 图 : 点 阵 宽 度 数 据 ASCII 点 阵 数 据 BYTE 0 BYTE 1 B7 B6 B5 B4 B3 B2 B1 B0 B7 B6 B5 B4 B3 B2 B1 B0 BYTE 2 B7 B6 B5 B4 B3 B2 B1 B0... BYTE 33 B7 B6 B5 B4 B3 B2 B1 B0 存 储 结 构 集 通 数 码 科 技 - 12 - www.genitop.com
不 等 宽 字 符 的 点 阵 存 储 宽 度 是 以 BYTE 为 单 位 取 整 的, 根 据 不 同 字 符 宽 度 会 出 现 相 应 的 空 白 区 根 BYTE0~ BYTE1 所 存 放 点 阵 的 实 际 宽 度 数 据, 可 以 对 还 原 下 一 个 字 的 显 示 或 排 版 留 作 参 考 例 如 :ASCII 方 头 字 符 B 0-33BYTE 的 点 阵 数 据 是 : 00 0C 00 F8 F8 18 18 18 18 18 F8 F0 00 00 00 00 00 00 00 7F 7F 63 63 63 63 63 67 3E 1C 00 00 00 00 00 其 中 : BYTE0~ BYTE1: 00 0C 为 ASCII 方 头 字 符 B 的 点 阵 宽 度 数 据, 即 :12 位 宽 度 字 符 后 面 有 4 位 空 白 区, 可 以 在 排 版 下 一 个 字 时 考 虑 到 这 一 点, 将 下 一 个 字 的 起 始 位 置 前 移 BYTE2-33: 00 F8 F8 18 18 18 18 18 F8 F0 00 00 00 00 00 00 00 7F 7F 63 63 63 63 63 67 3E 1C 00 00 00 00 00 为 ASCII 方 头 字 符 B 的 点 阵 数 据 集 通 数 码 科 技 - 13 - www.genitop.com
6.2 点 阵 字 库 地 址 表 序 号 分 类 字 库 内 容 编 码 体 系 ( 字 符 集 ) 字 符 数 容 量 起 始 地 址 1 8X16 点 拉 丁 文 系 字 符 Unicode 496 7936 2 8X16 点 希 腊 文 系 字 符 Unicode 96 1536 3 8X16 点 西 里 尔 文 系 字 符 Unicode 208 3328 0 Unicode 多 国 字 符 4 8X16 点 希 伯 来 文 系 字 符 Unicode 112 1792 5 8X16 点 泰 文 系 字 符 Unicode 128 2048 6 16 点 阵 不 等 宽 阿 拉 伯 文 系 字 符 Unicode 576 19584 16640 7 UNICODE 转 换 表 Unicode 20902 41804 45632 8 GB2312 转 换 表 GB2312 3008 6016 87436 汉 字 区 9 16 点 阵 字 符 区 工 作 区 294 9408 36224 10 16 点 阵 汉 字 区 工 作 区 5270 168672 93452 6.3 字 符 在 芯 片 中 的 地 址 计 算 方 法 用 户 只 要 知 道 字 符 的 内 码, 就 可 以 计 算 出 该 字 符 点 阵 在 芯 片 中 的 地 址, 然 后 就 可 从 该 地 址 连 续 读 出 点 阵 信 息 用 于 显 示 6.3.1 Unicode 多 国 字 符 的 地 址 计 算 6.3.1.1 8X16 等 宽 Unicode 字 符 包 括 拉 丁 文 希 腊 文 基 里 尔 文 希 伯 来 文 泰 文 说 明 : BaseAdd: 说 明 本 套 字 库 在 字 库 芯 片 中 的 起 始 字 节 地 址 unicode: 表 示 unicode 内 码 (16bits) Address: 表 示 汉 字 点 阵 在 芯 片 中 的 字 节 地 址 计 算 方 法 : BaseAdd = 0; if( unicode >= 0x20 && unicode <= 0x7f )//latin 1 Address = 16*(unicode-0x20)+ BaseAdd; else if( unicode >= 0xa0 && unicode <= 0xff )//latin 2 Address = 16*(96+unicode-0xa0)+ BaseAdd; else if( unicode >= 0x100 && unicode <= 0x17f )//latin 3 Address = 16*(96+96+unicode-0x100)+ BaseAdd; else if( unicode >= 0x1a0 && unicode <= 0x1cf )//latin 4 Address = 16*(128+96+96+unicode-0x1a0)+ BaseAdd; else if( unicode >= 0x1f0 && unicode <= 0x1ff )//latin 5 Address = 16*(48+128+96+96+unicode-0x1f0)+ BaseAdd; else if( unicode >= 0x210 && unicode <= 0x21f )//latin 6 Address = 16*(16+48+128+96+96+unicode-0x210)+ BaseAdd; else if( unicode >= 0x1ea0 && unicode <= 0x1eff )//latin 7 Address = 16*(16+16+48+128+96+96+unicode-0x1ea0)+ BaseAdd; else if( unicode >= 0x370 && unicode <= 0x3cf )//greek Address = 16*(96+16+16+48+128+96+96+unicode-0x370)+ BaseAdd; else if( unicode >= 0x400 && unicode <= 0x45f )//cyrillic 1 集 通 数 码 科 技 - 14 - www.genitop.com
Address = 16*(96+96+16+16+48+128+96+96+unicode-0x400)+ BaseAdd; else if( unicode >= 0x490 && unicode <= 0x4ff )//cyrillic 2 Address = 16*(96+96+96+16+16+48+128+96+96+unicode-0x490)+ BaseAdd; else if( unicode >= 0x590 && unicode <= 0x5ff )//hebrew Address = 16*(112+96+96+96+16+16+48+128+96+96+unicode-0x590)+ BaseAdd; else if( unicode >= 0xe00 && unicode <= 0xe7f )//thai Address = 16*(112+112+96+96+96+16+16+48+128+96+96+unicode-0xe00)+ BaseAdd; else Address = BaseAdd; 6.3.1.2 16 点 阵 不 等 宽 阿 拉 伯 文 系 字 符 说 明 : BaseAdd: 说 明 本 套 字 库 在 字 库 芯 片 中 的 起 始 字 节 地 址 unicode_alb: 表 示 unicode 内 码 (16bits) Address: 表 示 汉 字 点 阵 在 芯 片 中 的 字 节 地 址 计 算 方 法 : BaseAdd= 16640; if( unicode_alb >= 0x0600 && unicode_alb <= 0x06FF )//alb 1 Address = 34*(unicode_alb-0x0600)+ BaseAdd; else if( unicode_alb >= 0xfb50 && unicode_alb <= 0xfbff )//alb 2 Address = 34*(16*16+unicode_alb-0xfb50)+ BaseAdd; else if( unicode_alb >= 0xfe70 && unicode_alb <= 0xfeff )//alb 3 Address = 34*(16*11+16*16+unicode_alb-0xfe70)+ BaseAdd; 集 通 数 码 科 技 - 15 - www.genitop.com
6.3.2 汉 字 的 地 址 计 算 6.3.2.1 15X16 GB2312 编 码 汉 字 字 符 ZFAdd HZAdd: 表 示 字 符 和 汉 字 的 起 始 地 址 MSB LSB: 表 示 GB2312 编 码 的 高 字 节 和 低 字 节 GB2312tab: 表 示 GB2312 转 码 表 起 始 地 址 Address: 表 示 汉 字 点 阵 在 芯 片 中 的 字 节 地 址 ZFAdd = 36224: HZAdd = 93452: GB2312tab = 87436: Unsigned char buffer[2]; if( MSB >= 0xA1 && MSB <= 0xA5 )// 字 符 区 { if(msb == 0xA1 && LSB >= 0xA1 && LSB <= 0xBF ) Address = 32*(LSB-0xA1)+ ZFAdd; else if(msb == 0xA3 && LSB >= 0xA1 && LSB <= 0xFE ) Address = 32*(31+LSB-0xA1)+ ZFAdd; else if(msb == 0xA4 && LSB >= 0xA1 && LSB <= 0xF3) Address = 32*(31+94+LSB-0xA1)+ ZFAdd; else if(msb == 0xA5 && LSB >= 0xA1 && LSB <= 0xF6) Address = 32*(31+94+83+LSB-0xA1)+ ZFAdd; else Address = ZFAdd; } else if( (MSB >= 0xB0 && MSB <= 0xD7)&&(LSB>=0xA1 && LSB <= 0xFE) )// 汉 字 5270 Address = 32*( (MSB - 0xB0) * 94 + (LSB - 0xA1)+1)+ HZAdd; else if( (MSB >= 0xD8 && MSB <= 0xF7)&&(LSB>=0xA1 && LSB <= 0xFE))// 汉 字 5270~6763 { Address = ((MSB - 0xD8) * 94 + (LSB - 0xA1) ) *2 + GB2312tab; GT_Read(buffer, Address,2 ); // 从 字 库 中 读 取 二 个 字 节 Address = 32* (256*buffer[0]+buffer[1]) + HZAdd; } 集 通 数 码 科 技 - 16 - www.genitop.com
6.3.2.2 15X16 Unicode 编 码 汉 字 字 符 ZFAdd HZAdd: 表 示 字 符 和 汉 字 的 起 始 地 址 Unicode: 表 示 汉 字 的 unicode 编 码 Unicodetab: 表 示 unicode 转 码 表 起 始 地 址 Address: 表 示 汉 字 点 阵 在 芯 片 中 的 字 节 地 址 ZFAdd = 36224: HZAdd = 93452: Unicodetab = 45632: Unsigned char buffer[2]; if(unicode >= 0x4e00 && Unicode < 0x9fa6 ) // Unicode 汉 字 区 { Address = 2*(Unicode-0x4e00); Address = Address + Unicodetab; GT_Read(buffer, Address,2); // 从 字 库 中 读 取 二 个 字 节 Address = 256*buffer[0]+buffer[1]; Address = 32* Address + HZAdd; } else if(unicode >= 0xff01 && Unicode <= 0xff5d ) //Unicode 字 符 区 1 Address = 32*(31+Unicode-0xff01)+ ZFAdd; else if(unicode == 0xffe3) //Unicode 字 符 区 2 Address = 32*(31+93)+ ZFAdd; else if( Unicode >= 0x3041 && Unicode <= 0x3096 ) //Unicode 字 符 区 3 Address = 32*(31+93+1+Unicode-0x3041)+ ZFAdd; else if( Unicode >= 0x30a1 && Unicode <= 0x30f6 ) //Unicode 字 符 区 4 Address = 32*(31+93+1+83+Unicode-0x30a1)+ ZFAdd; else //Unicode 字 符 区 5 Address = 32* find_zf_tab(unicode)+ ZFAdd; 其 中 函 数 unsigned char find_zf_tab(unsigned short unicode) 参 考 下 列 代 码 unsigned short unicode_zf[31] = { 0x3000,0x3001,0x3002,0x00b7,0x02c9,0x02c7,0x00a8,0x3003,0x3005,0x2014,0xff5e,0x2016,0x2026, 0x2018,0x2019,0x201c,0x201d,0x3014,0x3015,0x3008,0x3009,0x300a,0x300b,0x300c,0x300d,0x300e,0x300f,0x3016,0x3017,0x3010,0x3011 }; unsigned char find_zf_tab(unsigned short unicode) { unsigned char i; for( i=0; i < 31; i++ ) { if( unicode == unicode_zf[i] ) break; } if(i==31) return(0); return(i); } 集 通 数 码 科 技 - 17 - www.genitop.com
7 附 录 7.1 Unicode 字 符 区 字 符 Unicode 字 符 区 共 收 录 拉 丁 文 系 (LATIN) 希 腊 文 系 (GREEK) 基 里 尔 文 系 (CYRILLIC) 希 伯 来 文 系 (HEBREW) 泰 文 (THAI) 阿 拉 伯 文 系 (ARABIC) 7.1.1 8 16 点 拉 丁 文 系 (496 字 符 ) Unicode 字 符 区 - 拉 丁 文 系 共 计 收 录 496 个 字 符 说 明 : 由 于 拉 丁 文 系 (BASIC LATIN) 的 内 码 范 围 0020~007E 与 基 本 ASCII 编 码 共 用 Unicode 字 符 区 - 拉 丁 文 系 00 0 1 2 3 4 5 6 7 8 9 A B C D E F 2 3 4 5 6 7 00 0 1 2 3 4 5 6 7 8 9 A B C D E F A B C D E F 集 通 数 码 科 技 - 18 - www.genitop.com
Unicode 字 符 区 - 拉 丁 文 系 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 01 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 1 1 2 2 3 5 4 5 6 7 01 0 1 2 3 4 5 6 7 8 9 A B C D E F A B C F 02 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1E 0 1 2 3 4 5 6 7 8 9 A B C D E F A B C D E F 集 通 数 码 科 技 - 19 - www.genitop.com
7.1.2 8 16 点 希 腊 文 系 (96 字 符 ) GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 Unicode 字 符 区 - 希 腊 文 系 共 计 收 录 96 个 字 符 Unicode 字 符 区 - 希 腊 文 系 03 0 1 2 3 4 5 6 7 8 9 A B C D E F 7 8 9 A BD C 集 通 数 码 科 技 - 20 - www.genitop.com
7.1.3 8X16 点 基 里 尔 文 系 (208 字 符 ) Unicode 字 符 区 - 基 里 尔 文 系 共 计 收 录 208 个 字 符 Unicode 字 符 区 - 基 里 尔 文 系 04 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 04 0 1 2 3 4 5 6 7 8 9 A B C D E F 9 A B C D E F 集 通 数 码 科 技 - 21 - www.genitop.com
7.1.4 8X16 点 希 伯 来 文 系 (112 字 符 ) GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 Unicode 字 符 区 - 希 伯 来 文 系 共 计 收 录 112 个 字 符 05 0 1 2 3 4 5 6 7 8 9 A B C D E F 9 A 4 B C D E F 7.1.5 8X16 点 泰 文 文 系 (128 字 符 ) Unicode 字 符 区 - 泰 文 文 系 共 计 收 录 128 个 字 符 Thai 0E 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 B 1 2 3 4 5 6 7 集 通 数 码 科 技 - 22 - www.genitop.com
7.1.6 16 点 阵 阿 拉 伯 文 系 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 Unicode 阿 拉 伯 文 系 编 码 字 符 8 060 061 A 062 B 063 0 1 2 3 4 5 6 7 8 9 A B C D E F 064 D 065 066 067 0 1 2 3 4 5 6 7 8 9 A B C D E F 068 069 A 06A B 06B 06C 06D 06E 06F 集 通 数 码 科 技 - 23 - www.genitop.com
Unicode 阿 拉 伯 文 系 编 码 字 符 0 1 2 3 4 5 6 7 8 9 A B C D E F FB5 FB6 FB7 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 FB8 0 1 2 3 4 5 6 7 8 9 A B C D E F FB9 FBA FBB FBC FBD FBE FBF FE7 0 1 2 3 4 5 6 7 8 9 A B C D E F FE8 FE9 FEA FEB FEC FED FEE FEF 集 通 数 码 科 技 - 24 - www.genitop.com
7.2 175 国 中 外 文 字 库 汉 语 拼 音 索 引 表 首 字 母 国 家 175 国 中 外 文 字 库 汉 语 拼 音 索 引 表 总 表 序 号 首 字 母 国 家 A 阿 富 汗 171 哥 斯 达 黎 加 67 P 葡 萄 牙 86 阿 尔 巴 尼 亚 122 圭 亚 那 15 帕 劳 20 阿 尔 及 利 亚 152 H 海 地 44 R 瑞 典 102 阿 曼 164 洪 都 拉 斯 71 瑞 士 94 阿 根 廷 78 荷 兰 98 S 萨 尔 瓦 多 70 阿 联 酋 158 哈 萨 克 斯 坦 144 圣 马 力 诺 118 阿 塞 拜 疆 139 J 吉 尔 吉 斯 斯 坦 140 圣 多 美 和 普 林 西 比 90 爱 尔 兰 2 吉 布 提 155 圣 基 茨 尼 维 斯 14 爱 沙 尼 亚 107 吉 布 提 56 圣 文 森 特 11 奥 地 利 95 津 巴 布 韦 27 圣 卢 西 亚 岛 12 澳 大 利 亚 16 加 蓬 60 塞 浦 路 斯 147 安 道 尔 64 加 拿 大 4 塞 内 加 尔 45 安 提 瓜 和 巴 布 达 9 加 纳 31 塞 拉 利 昂 29 安 哥 拉 91 几 内 亚 48 塞 舌 尔 36 埃 及 148 几 内 亚 比 绍 89 索 马 里 154 B 巴 拿 马 68 基 里 巴 斯 23 苏 丹 153 巴 黎 嫩 159 捷 克 110 沙 特 阿 拉 伯 167 巴 林 163 K 喀 麦 隆 53 所 罗 门 21 巴 基 斯 坦 170 科 摩 罗 61 斯 洛 伐 克 111 巴 勒 斯 坦 168 科 特 迪 瓦 49 斯 洛 文 尼 亚 115 巴 拉 圭 82 卡 塔 尔 162 苏 里 南 99 巴 哈 马 8 肯 尼 亚 129 T 土 耳 其 120 巴 西 87 克 罗 地 亚 116 土 库 曼 斯 坦 142 白 俄 罗 斯 132 科 威 特 161 突 尼 斯 149 冰 岛 105 L 利 比 里 亚 30 特 立 尼 达 和 多 巴 哥 7 贝 宁 51 利 比 亚 150 汤 加 18 伯 利 兹 5 拉 脱 维 亚 108 塔 吉 克 斯 坦 141 比 利 时 42 立 陶 宛 109 泰 国 173 波 罗 黎 各 73 罗 马 尼 亚 114 坦 桑 尼 亚 130 玻 利 维 亚 83 列 支 敦 士 登 97 W 瓦 努 阿 图 22 波 兰 112 卢 森 堡 96 危 地 马 拉 66 布 隆 迪 57 莱 索 托 40 文 莱 125 波 黑 137 M 马 耳 他 121 乌 拉 圭 81 保 加 利 亚 134 马 其 顿 138 乌 克 兰 133 布 基 纳 法 索 47 马 达 加 斯 加 62 乌 干 达 33 博 茨 瓦 纳 38 马 来 西 亚 124 乌 兹 别 克 斯 坦 143 C 赤 道 新 几 内 亚 84 马 拉 维 35 委 瑞 内 拉 75 D 德 国 93 马 里 46 X 西 班 牙 63 丹 麦 100 马 绍 尔 群 岛 25 休 达 和 梅 利 亚 85 多 米 尼 加 10 摩 尔 多 瓦 135 希 腊 146 多 米 尼 加 共 和 国 69 摩 纳 哥 43 叙 利 亚 157 总 表 序 号 首 字 母 国 家 总 表 序 号 集 通 数 码 科 技 - 25 - www.genitop.com
东 帝 汶 127 摩 洛 哥 151 新 西 兰 17 多 哥 50 毛 里 求 斯 37 新 加 坡 175 E 俄 罗 斯 131 毛 里 塔 尼 亚 156 匈 牙 利 113 厄 瓜 多 尔 79 秘 鲁 77 Y 牙 买 加 6 F 佛 得 角 88 美 国 3 也 门 160 梵 提 冈 119 蒙 古 145 意 大 利 117 法 罗 群 岛 103 墨 西 哥 65 约 旦 165 芬 兰 106 民 主 刚 果 58 印 度 尼 西 亚 126 菲 律 宾 128 莫 桑 比 克 92 越 南 123 法 国 41 N 纳 米 比 亚 39 伊 拉 克 166 斐 济 19 南 非 26 伊 朗 169 G 冈 比 亚 28 瑙 鲁 24 英 国 1 古 巴 74 尼 加 拉 瓜 72 以 色 列 172 哥 伦 比 亚 76 尼 日 利 亚 32 Z 赞 比 亚 34 格 林 纳 达 13 尼 日 尔 52 中 非 55 格 陵 兰 104 南 斯 拉 夫 联 盟 136 中 国 174 刚 果 59 挪 威 101 乍 得 54 智 利 80 集 通 数 码 科 技 - 26 - www.genitop.com
7.3 175 国 中 外 文 字 库 英 文 字 母 索 引 表 首 字 母 国 家 175 国 中 外 文 字 库 英 文 字 母 索 引 表 总 表 序 号 首 字 母 国 家 A Afghanistan 171 G Gambia 28 P Pakistan 170 Albania 122 Germany 93 Palau 20 Algeria 152 Ghana 31 Palestine 168 Andorra 64 Greece 146 Panama 68 Angola 91 Greenland 104 Paraguay 82 Antigua and Barbuda 9 Grenada 13 Peru 77 Argentina 78 Guatemala 66 Philippines,The 128 Australia 16 Guinea 48 Poland 112 Austria 95 Guinea-Bissau 89 Portugal 86 Azerbaijan 139 Guyana 15 Puerto Rico 73 B Bahamas 8 H Haiti 44 Q Qatar 162 Bahrain 163 Holland Republic of Democratic 98 R 58 Congo Barbados 137 Honduras 71 Romania 114 Belgium 42 Hungary 113 Russia 131 Belize 5 I Iceland 105 S San Marino 118 Benin 51 Indonesia 126 Sao Tome and Principe 90 Bolivia 83 Iran 169 Saudi Arabia 167 Botswana 38 Iraq 166 Senegal 45 Brazil 87 Israel 172 Seychelles 36 Britain 或 United Kingdom 1 Italy 117 Sierra Leone 29 Brunei 125 J Jamaica 6 Singapore 175 Bulgaria 134 Jordan 165 Slovakia 111 Burkina Faso 47 K Kazakhstan 144 Slovenia 115 Burundi 57 Kenya 129 Solomon 21 Byelorussia 或 Belarus 132 Kirghizstan 140 Somalia 154 C Cameroon 53 Kiribati 23 South Africa 26 Canada 4 Kuwait 161 Spain 63 Cape Verde 88 L Latvia 108 St.Kitts-Nevis 14 Central African Republic 55 Lebanon 159 St.Lucia 12 Ceuta and Melilla 85 Lesotho 40 St.Vincent 11 Chad 54 Liberia 30 Sudan,The 153 Chile 80 Libya 150 Surinam 99 China 174 Liechtenstein 97 Sweden 102 Colombia 76 Lithuania 109 Switzerland 94 Comoros 61 Lreland 2 Syria 157 Congo 59 Luxembourg 96 T Tajikistan 141 Costa Rica 67 M Macedonia 138 Tanzania 130 cote dlvoire 49 Madagascar 62 Thailand 173 Croatia 116 Malawi 35 Togo 50 集 通 数 码 科 技 - 27 - www.genitop.com 总 表 序 号 首 字 母 国 家 总 表 序 号
Cuba 74 Malaysia 124 Tonga 18 Cyprus 147 Mali 46 Trinidad and Tobago 7 Czech 110 Malta 121 Tunisia 149 D Denmark 100 Marshall Islands 25 Turkey 120 Djibouti 56 Mauritania 156 Turkmenistan 142 Djibouti 155 Mauritius 37 U Uganda 33 Dominica 10 Mexico 65 Ukraine 133 United Arab Emirates, Dominican Republic 69 Moldova 135 158 The E East Timor 127 Monaco 43 Uruguay 81 Ecuador 79 Mongolia 145 USA 3 Egypt 148 Morocco 151 Uzbekistan 143 El Salvador 70 Mozambique 92 V Vanuatu 22 Equatorial New Guinea 84 N Namibia 39 Vatican 119 Estonia 107 Nauru 24 Venezuela 75 F F.R.Yugoslavia 136 New Zealand 17 Vietnam 123 Faroes,The 103 Nicaragua 72 Y Yemen 160 Fiji 19 Niger 52 Z Zambia 34 Finland 106 Nigeria 32 Zimbabwe 27 France 41 Norway 101 G Gabon 60 O Oman 164 集 通 数 码 科 技 - 28 - www.genitop.com
7.4 175 国 中 外 文 字 库 总 表 文 系 区 域 序 号 国 家 语 言 1 英 国 Britain 或 United Kingdom 欧 洲 2 爱 尔 兰 lreland 北 美 洲 拉 丁 文 大 洋 洲 ( 英 语 ) 集 通 数 码 科 技 - 29 - www.genitop.com 英 语 3 美 国 USA 英 语 4 加 拿 大 Canada 英 语 法 语 5 伯 利 兹 Belize 6 牙 买 加 Jamaica 7 特 立 尼 达 和 多 巴 哥 Trinidad and Tobago 8 巴 哈 马 Bahamas 9 安 提 瓜 和 巴 布 达 Antigua and Barbuda 10 多 米 尼 加 Dominica 11 圣 文 森 特 St.Vincent 12 圣 卢 西 亚 岛 St.Lucia 13 格 林 纳 达 Grenada 14 圣 基 茨 尼 维 斯 St.Kitts-Nevis 英 语 南 美 洲 15 圭 亚 那 Guyana 英 语 非 洲 拉 丁 文 ( 法 语 ) 欧 洲 16 澳 大 利 亚 Australia 17 新 西 兰 New Zealand 18 汤 加 Tonga 19 斐 济 Fiji 20 帕 劳 Palau 21 所 罗 门 Solomon 22 瓦 努 阿 图 Vanuatu 23 基 里 巴 斯 Kiribati 24 瑙 鲁 Nauru 25 马 绍 尔 群 岛 Marshall Islands 英 语 26 南 非 South Africa 英 语 南 非 荷 兰 语 27 津 巴 布 韦 Zimbabwe 28 冈 比 亚 Gambia 29 塞 拉 利 昂 Sierra Leone 30 利 比 里 亚 Liberia 31 加 纳 Ghana 32 尼 日 利 亚 Nigeria 33 乌 干 达 Uganda 34 赞 比 亚 Zambia 35 马 拉 维 Malawi 36 塞 舌 尔 Seychelles 37 毛 里 求 斯 Mauritius 38 博 茨 瓦 纳 Botswana 39 纳 米 比 亚 Namibia 40 莱 索 托 Lesotho 英 语 41 法 国 France 法 语 42 比 利 时 Belgium 法 语 荷 兰 语 43 摩 纳 哥 Monaco 法 语 意 大 利 语
北 美 洲 44 海 地 Haiti 法 语 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 拉 丁 文 ( 法 语 ) 拉 丁 文 ( 西 班 牙 语 ) 非 洲 非 洲 45 塞 内 加 尔 Senegal 法 语 法 语 46 马 里 Mali 47 布 基 纳 法 索 Burkina Faso 48 几 内 亚 Guinea 49 科 特 迪 瓦 cote dlvoire 50 多 哥 Togo 法 语 51 贝 宁 Benin 52 尼 日 尔 Niger 53 喀 麦 隆 Cameroon 54 乍 得 Chad 55 中 非 Central African Republic 56 吉 布 提 Djibouti 57 布 隆 迪 Burundi 58 民 主 刚 果 Republic of Democratic Congo 59 刚 果 Congo 法 语 60 加 蓬 Gabon 61 科 摩 罗 Comoros 62 马 达 加 斯 加 Madagascar 63 西 班 牙 Spain 西 班 牙 语 加 泰 隆 语 欧 洲 64 安 道 尔 Andorra 西 班 牙 语 北 美 洲 南 美 洲 65 墨 西 哥 Mexico 66 危 地 马 拉 Guatemala 67 哥 斯 达 黎 加 Costa Rica 68 巴 拿 马 Panama 69 多 米 尼 加 共 和 国 Dominican Republic 70 萨 尔 瓦 多 El Salvador 71 洪 都 拉 斯 Honduras 72 尼 加 拉 瓜 Nicaragua 73 波 罗 黎 各 Puerto Rico 74 古 巴 Cuba 75 委 瑞 内 拉 Venezuela 76 哥 伦 比 亚 Colombia 77 秘 鲁 Peru 78 阿 根 廷 Argentina 79 厄 瓜 多 尔 Ecuador 80 智 利 Chile 81 乌 拉 圭 Uruguay 82 巴 拉 圭 Paraguay 83 玻 利 维 亚 Bolivia 84 赤 道 新 几 内 亚 Equatorial New Guinea 非 洲 85 休 达 和 梅 利 亚 Ceuta and Melilla 拉 丁 文 欧 洲 86 葡 萄 牙 Portugal ( 葡 萄 牙 南 美 洲 87 巴 西 Brazil 语 ) 非 洲 88 佛 得 角 Cape Verde 89 几 内 亚 比 绍 Guinea-Bissau 西 班 牙 语 西 班 牙 语 西 班 牙 语 葡 萄 牙 语 集 通 数 码 科 技 - 30 - www.genitop.com
拉 丁 文 ( 德 语 ) 拉 丁 文 ( 荷 兰 语 ) 拉 丁 文 ( 北 欧 ) 拉 丁 文 ( 中 欧 ) 欧 洲 90 圣 多 美 和 普 林 西 比 Sao Tome and Principe 91 安 哥 拉 Angola 92 莫 桑 比 克 Mozambique 93 德 国 Germany 德 语 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 94 瑞 士 Switzerland 德 语 法 语 95 奥 地 利 Austria 德 语 96 卢 森 堡 Luxembourg 德 语 法 语 97 列 支 敦 士 登 Liechtenstein 德 语 欧 洲 98 荷 兰 南 美 洲 99 苏 里 南 欧 洲 欧 洲 Holland Surinam 荷 兰 语 100 丹 麦 Denmark 丹 麦 语 101 挪 威 Norway 挪 威 语 102 瑞 典 Sweden 瑞 典 语 103 法 罗 群 岛 Faroes,The 法 罗 语 104 格 陵 兰 Greenland 格 陵 兰 语 105 冰 岛 Iceland 冰 岛 语 106 芬 兰 Finland 芬 兰 语 瑞 典 语 107 爱 沙 尼 亚 Estonia 爱 沙 尼 亚 语 108 拉 脱 维 亚 Latvia 拉 脱 维 亚 语 109 立 陶 宛 Lithuania 立 陶 宛 语 110 捷 克 Czech 捷 克 语 111 斯 洛 伐 克 Slovakia 斯 洛 伐 克 语 112 波 兰 Poland 波 兰 语 113 匈 牙 利 Hungary 匈 牙 利 语 114 罗 马 尼 亚 Romania 罗 马 尼 亚 语 拉 丁 文 115 斯 洛 文 尼 亚 Slovenia 斯 洛 文 尼 亚 语 欧 洲 ( 中 欧 ) 116 克 罗 地 亚 Croatia 克 罗 地 亚 语 拉 丁 文 ( 南 欧 ) 拉 丁 文 ( 东 南 亚 ) 欧 洲 亚 洲 117 意 大 利 Italy 118 圣 马 力 诺 San Marino 119 梵 提 冈 Vatican 意 大 利 语 120 土 耳 其 Turkey 土 耳 其 语 121 马 耳 他 Malta 马 耳 他 语 122 阿 尔 巴 尼 亚 Albania 阿 尔 巴 尼 亚 语 123 越 南 Vietnam 越 南 语 124 马 来 西 亚 Malaysia 125 文 莱 Brunei 126 印 度 尼 西 亚 Indonesia 127 东 帝 汶 East Timor 马 来 语 印 尼 语 128 菲 律 宾 Philippines,The 英 语 塔 加 洛 语 拉 丁 文 129 肯 尼 亚 Kenya 非 洲 ( 非 洲 ) 130 坦 桑 尼 亚 Tanzania 西 里 尔 文 ( 东 欧 ) 欧 洲 131 俄 罗 斯 Russia 132 白 俄 罗 斯 Byelorussia 或 Belarus 斯 瓦 西 里 语 集 通 数 码 科 技 - 31 - www.genitop.com 俄 语 133 乌 克 兰 Ukraine 俄 语 乌 克 兰 语 134 保 加 利 亚 Bulgaria 保 加 利 亚 语 135 摩 尔 多 瓦 Moldova 俄 语 136 南 斯 拉 夫 联 盟 F.R.Yugoslavia 塞 尔 维 亚 语
西 里 尔 文 ( 亚 洲 ) 亚 洲 GT20L16P1Y 标 准 点 阵 汉 字 字 库 芯 片 用 户 手 册 137 波 黑 Barbados 塞 尔 维 亚 语 138 马 其 顿 Macedonia 马 其 顿 语 139 阿 塞 拜 疆 Azerbaijan 阿 塞 拜 疆 语 140 吉 尔 吉 斯 斯 坦 Kirghizstan 吉 尔 吉 斯 斯 坦 语 141 塔 吉 克 斯 坦 Tajikistan 塔 吉 克 斯 坦 语 142 土 库 曼 斯 坦 Turkmenistan 土 库 曼 斯 坦 语 143 乌 兹 别 克 斯 坦 Uzbekistan 乌 兹 别 克 斯 坦 语 144 哈 萨 克 斯 坦 Kazakhstan 哈 萨 克 斯 坦 语 145 蒙 古 Mongolia 蒙 古 语 146 希 腊 Greece 希 腊 文 亚 洲 147 塞 浦 路 斯 Cyprus 阿 拉 伯 文 ( 非 洲 ) 阿 拉 伯 文 ( 亚 洲 ) 非 洲 亚 洲 148 埃 及 Egypt 149 突 尼 斯 Tunisia 150 利 比 亚 Libya 151 摩 洛 哥 Morocco 152 阿 尔 及 利 亚 Algeria 153 苏 丹 Sudan,The 154 索 马 里 Somalia 155 吉 布 提 Djibouti 156 毛 里 塔 尼 亚 Mauritania 157 叙 利 亚 Syria 158 阿 联 酋 United Arab Emirates,The 159 巴 黎 嫩 Lebanon 160 也 门 Yemen 161 科 威 特 Kuwait 162 卡 塔 尔 Qatar 163 巴 林 Bahrain 164 阿 曼 Oman 165 约 旦 Jordan 166 伊 拉 克 Iraq 167 沙 特 阿 拉 伯 Saudi Arabia 168 巴 勒 斯 坦 Palestine 希 腊 语 阿 拉 伯 语 阿 拉 伯 语 169 伊 朗 Iran 波 斯 语 170 巴 基 斯 坦 Pakistan 乌 尔 都 语 阿 拉 伯 语 171 阿 富 汗 Afghanistan 普 什 图 语 希 伯 来 文 亚 洲 172 以 色 列 Israel 希 伯 来 语 泰 文 亚 洲 173 泰 国 Thailand 泰 语 174 中 国 China 中 文 亚 洲 175 新 加 坡 Singapore 汉 语 集 通 数 码 科 技 - 32 - www.genitop.com
7.5 UTF8 编 码 到 UTF16 编 码 转 换 程 序 //------------------------------------------------------------------------------------------------------- // 函 数 名 称 :UFT8toUTF16(unsigned char *putf8,unsigned short *putf16 ) // 函 数 说 明 :UTF8 码 转 UTF16 码 函 数 // 参 数 说 明 :putf8 UTF8 数 据 指 针 ;putf16 获 得 UTF16 的 指 针 // 返 回 说 明 : 该 UTF8 字 符 的 占 用 字 节 数 // 版 权 上 海 集 通 数 码 科 技 有 限 公 司 时 间 :2010-11-22 //--------------------------------------------------------------------------------------------------------- unsigned char UFT8toUTF16(unsigned char *putf8,unsigned short *putf16 ) { unsigned char bytes[3]; unsigned short unicode16; } bytes[0] = *putf8++; if( bytes[0] < 0x80 ) { *putf16 = bytes[0]; return(1); } bytes[1] = *putf8++; if( bytes[0] >= 0xC0 && bytes[0] < 0xE0 ) { unicode16 = 0x1f&bytes[0]; *putf16 = (unicode16<<6)+(0x3f&bytes[1]); return(2); } bytes[2] = *putf8++; if( bytes[0] >= 0xE0 && bytes[0] < 0xF0 ) { unicode16 = 0x0f&bytes[0]; unicode16 = (unicode16<<6)+(0x3f&bytes[1]); *putf16 = (unicode16<<6)+(0x3f&bytes[2]); return(3); } else return(0); 集 通 数 码 科 技 - 33 - www.genitop.com