来源:AI开发日志公众号专辑「Build Your Own X With AI」
原文链接:https://mp.weixin.qq.com/s?__biz=MzUxMjg3MjE2OA==&mid=2247486287&idx=1&sn=56ffbf6715f1d8e35d736ca23c63525a&chksm=f95c90c8ce2b19de8fca5618703a51be0663916aa9dff0c70df2e10a13cb23ebc8ef26713c5c#rd
区位码输入法
一款基于 GB2312 区位码的 iOS 系统级输入法,支持通过输入 4 位数字快速输入汉字。
截图
功能特点
✅ 系统级键盘扩展 - 可在任意 App 中使用
✅ 完整 GB2312 支持 - 涵盖所有常用汉字
✅ 实时预览 - 输入区位码时实时显示对应汉字
✅ 码表查询 - 内置完整 GB2312 码表查询功能
✅ 简洁界面 - 清晰的数字键盘布局
✅ 便捷操作 - 长按(0.5秒)”0”按钮可切换键盘
什么是区位码?
GB2312 区位码是一种汉字编码方式,将每个汉字对应到一个 4 位数字编码:
前 2 位:区号(01-94)
后 2 位:位号(01-94)
例如:
1601
→ 啊
3021
→ 镜
5448
→ 中
2136
→ 的
安装方法
- 编译安装
克隆项目
git clone
cd ChineseCharacterPositionCode
使用 Xcode 打开项目
open ChineseCharacterPositionCode.xcodeproj
连接 iOS 真机,选择设备后运行(Command + R)
- 添加键盘
在设备上打开主 App
点击”使用说明”标签页
点击”打开键盘设置”按钮
在键盘列表中点击”添加新键盘…”
在第三方键盘列表中找到”区位码”
点击添加
- 使用键盘
在任意输入框中调出键盘
长按(0.5秒)”0”按钮
,选择”区位码”
输入 4 位数字即可输入对应汉字
使用说明
键盘布局
┌─────────────────────────┐
│ 区位码: 1601 │
│ 啊 │ ← 输入显示区(实时预览)
└─────────────────────────┘
┌───┬───┬───┐
│ 1 │ 2 │ 3 │
├───┼───┼───┤
│ 4 │ 5 │ 6 │
├───┼───┼───┤
│ 7 │ 8 │ 9 │
└───┴───┴───┘
┌───┬─────┬───────┬─────┐
│ 0 │删除 │ 空格 │换行 │
└───┴─────┴───────┴─────┘
功能按键
数字键 0-9
:输入区位码
0 按钮
:点击输入数字 0,长按(0.5秒)切换键盘
删除
:删除输入的数字或已输入的字符
空格
:输入空格
换行
:输入换行符
输入流程
输入 4 位区位码数字
系统自动显示对应汉字预览
输入完成后自动插入汉字
继续输入下一个字符
码表查询
主 App 提供完整的 GB2312 码表查询功能:
功能
按区浏览
:选择 1-94 区查看该区所有汉字
搜索功能
:输入区位码快速定位
字符详情
:点击汉字查看详细信息
复制功能
:可复制区位码或汉字
区位分布
区号
内容
01-09
特殊符号
10-15
数字、字母等
16-55
一级汉字(3755个,按拼音排序)
56-87
二级汉字(3008个,按部首排序)
常用汉字区位码示例
常用汉字区位码示例
一级常用字(第 16-55 区)
1601
啊 - 1602 阿 - 1603 埃 - 1604 挨
3021
镜 - 3022 盅 - 3023 忠 - 3024 钟
5448
中 - 5449 图 - 5450 圄 - 5451 团
高频汉字
2136
的
5027
一
4239
是
1823
不
1670
了
2934
人
1862
我
2050
在
2123
有
2976
他
技术架构
项目结构
ChineseCharacterPositionCode/
├── ChineseCharacterPositionCode/ # 主 App
│ ├── ChineseCharacterPositionCodeApp.swift
│ ├── ContentView.swift # 主界面(码表查询 + 使用说明)
│ └── GB2312Data.swift # 区位码数据模型
├── PositionCodeKeyboard/ # 键盘扩展
│ ├── KeyboardViewController.swift # 键盘实现
│ └── Info.plist # 键盘配置
└── README.md
核心技术
SwiftUI
:主 App 界面开发
UIKit
:自定义键盘实现
Keyboard Extension
:iOS 键盘扩展
GB2312 编码转换
:区位码到 Unicode 的转换
区位码转换原理
// GB2312 编码计算公式
let highByte = area +0xA0// 区号 + 0xA0
let lowByte = position +0xA0// 位号 + 0xA0
// 使用 GB_18030_2000 编码转换为 Unicode
let gb2312Bytes: [UInt8] = [UInt8(highByte), UInt8(lowByte)]
let character =String(bytes: gb2312Bytes, encoding: .GB_18030_2000)
系统要求
iOS 14.0 或更高版本
Xcode 14.0 或更高版本
真机测试(键盘扩展不支持模拟器)
常见问题
Q: 为什么添加键盘后看不到?
A: 请确保:
完全删除旧版本 App 后重新安装
使用真机运行(不是模拟器)
在系统设置中正确添加键盘
尝试重启设备
Q: 如何切换到区位码键盘?
A: 在任意输入框中,长按(0.5秒)”0”按钮(或其他键盘的地球图标),在弹出菜单中选择”区位码”。
Q: 为什么有些区位码查不到字?
A: GB2312 标准并非所有区位都有对应汉字,某些位置为空或保留。
Q: 可以输入特殊符号吗?
A: 可以,第 1-9 区包含各种特殊符号,可在码表查询中查看。
开发计划
[ ] 支持常用汉字收藏功能
[ ] 添加区位码反查功能(输入汉字查区位码)
[ ] 支持深色模式
[ ] 添加键盘音效和震动反馈
[ ] 优化键盘布局适配不同屏幕尺寸
许可证
MIT License
贡献
https://github.com/build-your-own-x-with-ai/ChineseCharacterPositionCode
欢迎提交 Issue 和 Pull Request!
联系方式
如有问题或建议,请提交 Issue。
注意:本项目仅供学习交流使用,区位码输入法适合需要精确输入汉字或学习汉字编码的场景。
使用截图说明
主界面
码表查询页面
码表查询页面提供完整的 GB2312 码表浏览和搜索功能:
区选择器
:快速切换 1-94 区
搜索框
:输入区位码进行搜索
字符网格
:以卡片形式展示所有汉字
字符详情
:点击可查看详细信息并复制
使用说明页面
使用说明页面包含:
区位码介绍
:什么是区位码及其编码规则
使用教程
:如何使用键盘输入汉字
添加键盘指南
:详细的键盘安装步骤
快捷按钮
:一键跳转到系统键盘设置
常用汉字参考
:区位码分布说明
键盘界面
键盘布局说明
┌─────────────────────────┐
│ 区位码: 1601 │ ← 当前输入的区位码
│ 啊 │ ← 实时预览的汉字
└─────────────────────────┘
┌───────┬───────┬───────┐
│ 1 │ 2 │ 3 │
├───────┼───────┼───────┤
│ 4 │ 5 │ 6 │
├───────┼───────┼───────┤
│ 7 │ 8 │ 9 │
└───────┴───────┴───────┘
┌─────┬───────┬─────────┬───────┐
│ 0 │ 删除 │ 空格 │ 换行 │
└─────┴───────┴─────────┴───────┘
功能说明
顶部显示区
实时显示当前输入的区位码
输入 4 位数字时显示对应汉字预览
数字键盘区
大号数字按钮,方便输入
标准 3x3 布局
功能键区
0 按钮
:点击输入数字 0,长按(0.5秒)切换键盘
删除
:优先删除输入缓冲区,然后删除文本
空格
:输入空格字符
换行
:输入换行符
使用流程示例
示例 1:输入”中国”
切换到区位码键盘
输入 3021
显示:区位码: 3021 → 中
自动插入”中”
输入 5448
显示:区位码: 5448 → 国
自动插入”国”
完成输入:”中国”
示例 2:输入”你好”
输入 3694 → 你
输入 2345 → 好
完成输入:”你好”
示例 3:纠错
输入 16
输入错误,按”删除”键
区位码变为 1
继续输入正确的数字
码表查询使用
查询特定汉字
打开主 App
进入”码表查询”标签页
在搜索框输入区位码(如 1601)
查看搜索结果
点击汉字查看详情
可复制区位码或汉字
浏览某个区
打开码表查询页面
点击顶部的区选择器
选择要浏览的区(如”第 16 区”)
浏览该区所有汉字
查找高频字
常用高频字主要在第 16-55 区(一级汉字):
第 16-19 区:a-d 开头的拼音
第 20-29 区:e-l 开头的拼音
第 30-39 区:m-q 开头的拼音
第 40-55 区:r-z 开头的拼音
设置说明
添加键盘
打开主 App
点击”使用说明”标签页
阅读”如何添加键盘?”部分
点击蓝色”打开键盘设置”按钮
在打开的系统设置页面中:
进入”键盘”设置
点击”添加新键盘…”
在第三方键盘中找到”区位码”
点击添加
切换键盘
在任意输入框中:
长按(0.5秒)”0”按钮
在弹出菜单中选择”区位码”
或使用系统地球图标(如果有其他键盘)。
技巧和建议
记忆常用字
建议记住一些高频字的区位码:
1684
的
1822
一
4263
是
2934
人
2976
他
查找生僻字
使用主 App 的码表查询
按区浏览(第 56-87 区是二级汉字)
记录需要的字的区位码
快速输入
熟练掌握数字键位置
记住常用字的区位码
利用实时预览确认输入
注意事项
必须输入 4 位数字
:不足 4 位不会输出汉字
区位范围
:区号和位号都是 01-94
并非所有区位都有字
:某些位置为空
长按切换
:长按(0.5秒)”0”按钮可切换键盘
短按输入
:点击”0”按钮输入数字 0
故障排除
键盘不显示
确认已在系统设置中添加键盘
尝试重启设备
重新安装 App
无法输入汉字
检查是否输入了 4 位数字
确认区位码是否有效(01-94)
查看码表确认该位置是否有字
预览不显示
继续输入直到 4 位数字
确认区位码有效
如有其他问题,请参考 README.md 或提交 Issue。