Unicode 是国际统一的字符集,为世界上的文字、符号和 emoji 分配唯一码点(U+0000–U+10FFFF,共 17 个平面)。下面重点说明典型写法与场景。
Unicode常见用法
- 全球化和多语言软件
- 网页、JSON、API 的默认字符集基础
- emoji 与符号处理
- 数据库排序和检索(校对规则)
示例
输入:https://www.123wen.cn/?q=测试
码点结果:
h=U+0068,t=U+0074,t=U+0074,p=U+0070,s=U+0073,:=U+003A,/=U+002F,/=U+002F,w=U+0077,w=U+0077,w=U+0077,.=U+002E,1=U+0031,2=U+0032,3=U+0033,w=U+0077,e=U+0065,n=U+006E,.=U+002E,c=U+0063,n=U+006E,/=U+002F,?=U+003F,q=U+0071,==U+003D,测=U+6D4B,试=U+8BD5
说明:码点是抽象编号,具体存盘还要选 UTF-8 或 UTF-16 等编码。
怎么选
新系统以 Unicode 为字符集、以 UTF-8 为存储和传输编码。只有在对接老系统时才在边界转换成 GBK 或 Big5。
Unicode 是字符集;UTF-8/16/32 是编码方案。GBK、Big5 是另一套字符集兼编码,与 Unicode 之间必须查表转换。ASCII 是 Unicode 的前 128 个码点。
Java 示例
下面是 Java 中处理Unicode的常用写法:
"中".codePointAt(0); // 0x4E2D
new String(Character.toChars(0x1F600));运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的Unicode转换工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【为什么两个看起来一样的字比较不相等?】可能一个是组合字符(字母+注音),一个是预合成字符,需要先规范化。
【emoji 是一个字符吗?】一个 emoji 可能由多个码点组成(例如带修饰符或 ZWJ 序列)。
【Unicode 和 UTF-8 是一回事吗?】不是。Unicode 规定“字符编号”,UTF-8 规定“编号怎么变成字节”。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。